home *** CD-ROM | disk | FTP | other *** search
Wrap
/* rem pekebas rrhp.bas [FREEWARE] cornercept 1997 /* Remrunners Hyher Padock for X680x0 series /* HORSES DATA MAIN dim str h(70) /* なまえ dim char hg(70) /* グラフィック 0-19 dim char hk(70) /* (Reach for BP) dim char hs(70) /* 基準脚力 dim char hs2(70) /* ペース配分指数 1(序盤重視)~50(一定)~99(終盤重視) dim char hz(70,5) /* 過去6レースの順位 dim char ad(70) /* オッズ作成用ランク dim char out(70) /* 出場フラグ dim char points(70)/* 獲得ポイント 1位=10 2位=6 3位=3 /* RACE PARAMETERS dim int en(5),dis(5),res(5),posi(5) dim int spd(5),fd(5),ld(5) /* fd,ldは序盤/終盤のダッシュ値 dim str graph(5) dim int w(6),bp(5),rc(5) dim int odds(21),moda(5),juni(5),fdd(5),zip(5) dim char hac(5),jun(5) str graph_c int gl /* Goal Line int ro /* Turn Counter int rn,rnn /* random number int comp int bo,so dim char c_out(80) char zi /* /* PLAYER PARAMETERS dim int coin(6) dim str name(6) dim int peak(10) dim int b_coin(6,21),win(6),pay(6),join_red(6) dim char join(6),ccp(6),b_num(6),ki(6,5,1) int gold=1500 char player,captain,cap_enc /* SPACESHIP PARAMETERS dim char Eng(12)={1,1,0,0,1} dim char busy(9) /* CRUE: TASK REVOLVER 0:Not_Yet 1:Already dim char Exi(5) dim char Eqi(20) dim char Sen(50) /*scenario flag dim str bqm(3)={"","","",""} dim int Rdp(2,2) char CE /* connected powersource /* GAME PARAMETERS dim str m$(12)={"","January","February","March","April","May","June","July","August","September","October","November","December"} dim str n$(9)={"0","1","2","3","4","5","6","7","8","9"} dim str b$(3)={"","爆発パワー ","転倒 ","故障 "} dim str bt$(21)={" 1 "," 2 "," 3 "," 4 "," 5 "," 6 ","1-2","1-3","1-4","1-5","1-6","2-3","2-4","2-5","2-6","3-4","3-5","3-6","4-5","4-6","5-6"} dim str cn$(9)={"Samuel","Sheckley","Marion","Bruce","Fredrick","Alice","David","Arthur","Niel","Frank"} dim str np(3)={"■■■■","■ ■","■ "," ■"} dim str RL(9)={"s","S","m","b","f","a","d","A","n","F"} dim char ati(20,1)={1,1,2,2,3,3,4,4,5,5,6,6,1,2,1,3,1,4,1,5,1,6,2,3,2,4,2,5,2,6,3,4,3,5,3,6,4,5,4,6,5,6} dim char CPU_en(9),enc(9) dim char gm(3690),gm2(288) /* 82x90 24x24 dim char ng(9,4)={0,1,1,1,0, 3,3,3,3,3, 0,3,0,2,0, 0,3,0,3,0, 1,1,0,3,3, +0,2,0,3,0, 0,2,0,1,0, 0,1,3,3,3, 0,1,0,1,0, 0,1,0,3,0} dim char crgb(41)={25,15,30,12,29,20,30,30,15,30,24,15,0,28,15,11,21,0,15,30,30,5,5,21,30,0,15,30,15,0,26,20,13,16,16,17,19,19,17,22,22,20} dim int sls(7,5) /* 角度/位置(半径)/目標半径/移動速度type0,1,2/カウンタ dim char smv(2,9)={1,1,1,1,1,2,2,2,2,3, +1,1,2,2,2,3,3,3,3,4, +2,2,3,3,3,4,5,6,7,8} char stars /* ブリッジ前面スクリーンの星のながれ 0:Off 1:On int SH /* 星のカウンタ int HAK /* hitany() 内カウンタ str ss,as,www int finish int race /* race number int round char hyher,bos char v_out char comet char RR=12,OS,IV=1,SEN,ML=1 char toki /* 1にすると関数tok()の最後で入力待ちと消去を行う char Hn,Hx int tc /* FOR TESTMODE char debug_sw=0 /* COLOR int green /* MUSIC dim char on(4,10)={38,15,02,01,200,127,0,0, 0, 3, 0, +31,00,00,15,00,00,00,01,00,00,00, +31,00,00,15,00,00,00,01,00,00,00, +31,00,00,15,00,00,00,01,00,00,00, +31,00,00,15,00,00,00,01,00,00,00} /* IPC-form dim int g(8000) /* ipcデータ: g(Character-Number,Block) dim int c_r(255),c_g(255),c_b(255) /* パレットデータ R,G,B [256 COLORS] /* UMA str g1=chr$(30),g2=chr$(28),g3=chr$(31),g4=chr$(29),g5 g5=g4+g4+g4+g4+g4+g4+g4+g4+g3 dim str um(19) um( 0)="O___ "+g4+g4+g4+g4+g4+g3+" H H " um( 1)="コ___ "+g4+g4+g4+g4+g4+g3+" YYY " um( 2)="\__) "+g4+g4+g4+g4+g4+g3+" A A " um( 3)="%__, "+g4+g4+g4+g4+g4+g3+" M M " um( 4)="V___ "+g4+g4+g4+g4+g4+g3+" X^X " um( 5)="「@ "+g4+g4+g4+g4+g4+g3+" TTT " um( 6)=">O / "+g4+g4+g4+g4+g4+g3+" (~) " um( 7)="(y "+g4+g4+g4+g4+g4+g3+" X) " um( 8)=" "+g4+g4+g4+g4+g4+g3+"<oo> " um( 9)="W..W "+g4+g4+g4+g4+g4+g3+"A--A " um(10)=">O/フ "+g4+g4+g4+g4+g4+g3+" ノ」 " um(11)="U___ "+g4+g4+g4+g4+g4+g3+" ハ ハ " um(12)="ロ__ュ "+g4+g4+g4+g4+g4+g3+" H H " um(13)="___] "+g4+g4+g4+g4+g4+g3+"o o " um(14)="o-= "+g4+g4+g4+g4+g4+g3+"=._ヨ " um(15)=">@ "+g4+g4+g4+g4+g4+g3+" Iフ " um(16)="/o "+g4+g4+g4+g4+g4+g3+"~X> " um(17)=" "+g4+g4+g4+g4+g4+g3+"m・・W " um(18)="]# "+g4+g4+g4+g4+g4+g3+" Ooo " um(19)=" "+g4+g4+g4+g4+g4+g3+":<<< " graph_c=" "+g4+g4+g4+g4+g4+g3+" " /* HORSES GRAPHIC INTRODUCTION: /* 0 1 2 3 4 5 6 7 8 9 /* /* O___ コ___ \__) %__, V___ 「@ >O / (y W..W /* H H YYY A A M M X^X TTT (~) X) <oo> A--A /* /* /* 10 11 12 13 14 15 16 17 18 19 /* /* >O/フ U___ ロ__ュ ___] o-= >@ /o ]# /* ノ」 ハ ハ H H o o =._ヨ Iフ ~X> m・・W Ooo :<<< /* FOR LOOP/COUNTS int LP,LP2,LP3,LP4,LC,CPS,LCD,CN,NB,NS,TX,TY,TT,R2,G2,B2 /* main screen 2,0,1,1 console 0,32,0 window(0,0,901,800) /*texpin_sc() /* hitany() /* test1() /* test2() ipcload("KBH2.ipc") for LP=0 to 13 palet(LP+1,rgb(crgb(LP*3),crgb(LP*3+1),crgb(LP*3+2))) next palet(1,1) /* palet(2,rgb(12,29,20)) /* 後に確認後、この数値を初期設定値とする。 LC=trace() /* selec() /* selec_t() /* faces() /* graphpac() /* wipe() /* graphicLoad() LC=atoi(mid$(time$,1,2))*100 LC=LC-atoi(right$(time$,2)) if right$(date$,1)>"4" then LC=LC-60*atoi(right$(time$,2)) if atoi(mid$(time$,4,2))>4 then LC=LC*atoi(right$(time$,2)) randomize(LC) color [,rgb(12,29,20),rgb(15,18,18),rgb(31,31,31)] title() ss=infos(0) ss=space$(95-len(ss))+ss color 10 pen(0,0,ss) firstsetting() color 10:pw():color 3 for LP=0 to 6 pen(LP*13+2,29,"GAMEOVER") next LP=int(rnd()*7) if LP>4 then { LC=2 if rnd()*6<1 then LC=0 CPU_en(9)=1 join_red(LC)=rnd()*500+10 ccp(LC)=9 } while 1 round=round+1 for LP=0 to 65 out(LP)=0 next for LP2=1 to 12 LC=0 for LP=0 to 6 if join(LP)=3 then fill(LP*13*8+2,371,LP*13*8+83,460,0):color 3:pen(LP*13,31," "):join(LP)=0 if LP>3 then if LC<4 then continue if join(LP)=2 then LC=LC+1 if join(LP)>0 then continue if rnd()*10<3 then continue rn=rnd()*10 if CPU_en(rn)=1 then continue if LP2<12 then if rnd()*11>8 then continue if rnd()*3>2 then continue join_red(LP)=rnd()*1500+10 /* enter ready CPU_en(rn)=1 ccp(LP)=rn next race=race+1 for LP=0 to 65 c_out(LP)=0 next if LP2=12 then if right$(str$(race),1)="4" then { hyher=2 for LC=0 to 5 moda(LC)=0:hac(LC)=0 next LP=0 while 1 CPS=0 for LC=0 to 65 if c_out(LC)=1 then continue CN=hz(LC,0)+hz(LC,1)+hz(LC,2)+hz(LC,3)+hz(LC,4)+hz(LC,5) if CN>CPS then rn=LC:CPS=CN next c_out(rn)=1 en(LP)=rn spd(LP)=hs(rn) graph(LP)=um(hg(rn)) if LP=5 then break LP=LP+1 endwhile } if LP2=12 then if hyher=0 then { hyher=1 for LC=0 to 5 moda(LC)=0:hac(LC)=0 next LP=0 while 1 CPS=0 for LC=0 to 65 if c_out(LC)=1 then continue if points(LC)>CPS then CPS=points(LC):rn=LC:continue if points(LC)=CPS then if int(rnd()*4)>2 then rn=LC next c_out(rn)=1 en(LP)=rn spd(LP)=hs(rn) graph(LP)=um(hg(rn)) CPS=0 for LC=0 to 4 if hz(en(LP),LC)=1 then CPS=CPS+1 next if ad(en(LP))=1 then if CPS>2 then if rnd()*10>3 then hac(LP)=1:if rnd()*2<1 then spd(LP)=spd(LP)+1 if ad(en(LP))=2 then if CPS>1 then if rnd()*10>1 then hac(LP)=1:if rnd()*8>6 then spd(LP)=spd(LP)+5 if ad(en(LP))=3 then if hz(en(LP),0)<4 then if rnd()*3<1 then hac(LP)=2:if rnd()*5>2 then spd(LP)=spd(LP)+rnd()*3+1 if ad(en(LP))=4 then if int(rnd()*820)=68 then hk(en(LP))=1 if int(rnd()*8)=1 then hac(LP)=3:spd(LP)=spd(LP)+2 if hac(LP)=0 then if int(rnd()*24)=3 then hac(LP)=6:if rnd()*2<1 then spd(LP)=spd(LP)-rnd()*5-1 if hac(LP)=0 then if int(rnd()*20)=5 then hac(LP)=4 if hac(LP)=0 then if int(rnd()*20)=1 then { hac(LP)=5 if rnd()*5>1 then moda(LP)=moda(LP)+rnd()*1200 else moda(LP)=moda(LP)+rnd()*3000 } if LP=5 then break LP=LP+1 endwhile } if LP2<12 then { hyher=0 for LP=0 to 5 hac(LP)=0:moda(LP)=0 while 1 rn=rnd()*66 if out(rn)=0 then break endwhile out(rn)=1 en(LP)=rn spd(LP)=hs(rn) graph(LP)=um(hg(rn)) CPS=0 for LC=0 to 4 if hz(en(LP),LC)=1 then CPS=CPS+1 next if ad(en(LP))=1 then if CPS>2 then if rnd()*10>3 then hac(LP)=1:if rnd()*2<1 then spd(LP)=spd(LP)+1 if ad(en(LP))=2 then if CPS>1 then if rnd()*10>1 then hac(LP)=1:if rnd()*8>6 then spd(LP)=spd(LP)+5 if ad(en(LP))=3 then if hz(en(LP),0)<4 then if rnd()*7<2 then hac(LP)=2:if rnd()*5>2 then spd(LP)=spd(LP)+rnd()*7+1 if ad(en(LP))=4 then if int(rnd()*120)=68 then hk(en(LP))=1 if int(rnd()*8)=1 then hac(LP)=3:spd(LP)=spd(LP)+2 if hac(LP)=0 then if int(rnd()*14)=3 then hac(LP)=6:if rnd()*8<3 then spd(LP)=spd(LP)-rnd()*5 if hac(LP)=0 then if int(rnd()*14)=5 then hac(LP)=4 if hac(LP)=0 then if int(rnd()*20)=1 then hac(LP)=5:moda(LP)=moda(LP)+rnd()*800 next } color 10:pen(0,0," R #"+str$(race)):color 3 wait(7) palet(15,0) get(656,692,737,781,gm) put(305,167,386,203,gm) symbol(385,180,space$(3-len(str$(race)))+"#"+str$(race),1,1,2,15,0) symbol(386,180,space$(3-len(str$(race)))+"#"+str$(race),1,1,2,15,0) symbol(387,180,space$(4-len(str$(race)))+str$(race),1,1,2,15,0) get(305,164,444,205,gm) if LP2=12 then color 5:pen(38,15,"HYHER CHAMPIONSHIP") if hyher=2 then pen(41,17,"- LIMITED -") for LP=0 to 15 palet(15,rgb(LP,LP,LP)) v_disp() put(305,164-LP,444,205-LP,gm) next for LP=0 to 15 palet(15,rgb(LP+16,LP+16,LP+16)) v_disp() put(305,149+LP,444,190+LP,gm) next for LP=0 to 11 v_disp() fill(300+(11-LP)*12,205,312+(11-LP)*12,206,7) next wait(9) c_r(16)=c_r(7):c_g(16)=c_g(7):c_b(16)=c_b(7) for LP=0 to 12 /* 167 to 203 if c_r(16)>0 then c_r(16)=c_r(16)-1 if c_g(16)>0 then c_g(16)=c_g(16)-1 if c_b(16)>0 then c_b(16)=c_b(16)-1 wait(1) palet(7,rgb(c_r(16),c_g(16),c_b(16))) palet(15,rgb(31-LP,31-LP,31-LP)) put(305,LP*3+167,444,203,gm) next palet(15,65535) fill(300,205,444,206,0) palet(7,rgb(c_r(7),c_g(7),c_b(7))) if LP2=12 then color 6:pen(38,15,"HYHER CHAMPIONSHIP") if hyher=2 then pen(41,17,"- LIMITED -") wait(3) enter() bet() betc() /*m_play(1) if v_out=1 then { v_out=0 break } color 3 pen(80,25," ") pen(80,24," ") for LP=0 to 6 if join(LP)=2 then { get(ccp(LP)*82,602,ccp(LP)*82+81,691,gm) put(LP*13*8+2,371,LP*13*8+83,460,gm) } next enter_c() for LP=0 to 5 pen(90,7+LP*3,graph(LP)) dis(LP)=0:posi(LP)=0:res(LP)=0 fd(LP)=0:fdd(LP)=0:ld(LP)=0:bp(LP)=0 next CN=0:if RR>0 then RR=RR-1 finish=1 pen(6,6,"|") if join(0)=0 then pen(6,24,"|") wait(70) rn=rnd()*6 spd(rn)=spd(rn)-5 rn=rnd()*6 spd(rn)=spd(rn)+5 for LP=0 to 5 if hs2(en(LP))<rnd()*30+30 then fd(LP)=60-hs2(en(LP))-rnd()*20 if rnd()*55>hs2(en(LP)) then fd(LP)=fd(LP)+5 if rnd()*35>hs2(en(LP)) then fd(LP)=fd(LP)+12 if fd(LP)>0 then { if int(rnd()*8)=0 then fd(LP)=fd(LP)/2 fdd(LP)=5:if int(rnd()*5)=4 then fdd(LP)=rnd()*9:if int(rnd()*14)=1 then fdd(LP)=fdd(LP)+15 } if hs2(en(LP))>59 then { ld(LP)=hs2(en(LP))-55 spd(LP)=spd(LP)-rnd()*6 if rnd()*50+50<hs2(en(LP)) then ld(LP)=ld(LP)+10 if rnd()*50+50<hs2(en(LP)) then ld(LP)=ld(LP)+10 if int(rnd()*3)=0 then ld(LP)=ld(LP)/2 if ld(LP)>0 then ld(LP)=94-ld(LP) if ld(LP)<0 then ld(LP)=5 if int(rnd()*10)=6 then ld(LP)=ld(LP)+20 } next zi=rnd()*100 for LP=0 to 5 if abs(hs2(en(LP))-zi)<5 then zip(LP)=25:spd(LP)=spd(LP)+10:continue if abs(hs2(en(LP))-zi)<10 then zip(LP)=25:continue if abs(hs2(en(LP))-zi)<21 then zip(LP)=15:continue zip(LP)=10 next while 1 LP3=LP3+1:if LP3=5 then LP3=0:CN=CN+1 /* CN = loop counter /* pen(0,1,sasi(CN,3)) LP4=LP3 if CN>60 then LP4=rnd()*5 switch LP4 case 2:for LP=0 to 5 if bp(LP)=1 then dis(LP)=dis(LP)+30 rn=int(rnd()*4):if rn=3 then { if hac(LP)=6 then dis(LP)=dis(LP)+spd(LP)/3:continue if hac(LP)=7 then if CN>50+rnd()*20 then dis(LP)=dis(LP)+rnd()*spd(LP)*ad(en(LP)):continue } if rnd()*20<1 then if hac(LP)=3 then dis(LP)=dis(LP)+rnd()*spd(LP)*ad(en(LP)):continue if posi(LP)>50 then if res(LP)=0 then if ad(en(LP))<4 then if int(rnd()*1870)=1 then if bp(LP)=0 then { if hac(LP)=4 then continue bp(LP)=2:if hg(en(LP))=13 then bp(LP)=3 pen(90-posi(LP),LP*3+7,graph(LP)+b$(bp(LP))) } if rnd()*3<1 then dis(LP)=dis(LP)+rnd()*spd(LP):continue if moda(LP)>0 then { CPS=rnd()*30+20 dis(LP)=dis(LP)+CPS moda(LP)=moda(LP)-CPS:if moda(LP)<0 then moda(LP)=0 } if CN<25 then dis(LP)=dis(LP)+rnd()*25 dis(LP)=dis(LP)+spd(LP) next break case 1:rn=rnd()*6 dis(rn)=dis(rn)+20 if int(rnd()*4)=1 then { for LP=0 to 5 if CN>70 then dis(LP)=dis(LP)+rnd()*30:continue dis(LP)=dis(LP)+spd(LP) next break } for LP=0 to 5 if int(rnd()*6)=0 then dis(LP)=dis(LP)+10:continue if posi(LP)<=fd(LP)+fdd(LP) then { if int(rnd()*6)=0 then dis(LP)=dis(LP)+(spd(LP)/2)+20:continue dis(LP)=dis(LP)+25 } if ld(LP)>0 then if posi(LP)>=ld(LP) then { if int(rnd()*5)=0 then dis(LP)=dis(LP)+hs2(en(LP))-50:continue if hac(LP)=7 then dis(LP)=dis(LP)+25 if hac(LP)=2 then dis(LP)=dis(LP)+10 dis(LP)=dis(LP)+rnd()*30:continue } next break case 0:for LP=0 to 1 rn=rnd()*6 dis(rn)=dis(rn)+rnd()*20*ad(en(rn)) next for LP=0 to 5 if bp(LP)=1 then dis(LP)=dis(LP)+60 if moda(LP)>0 then { CPS=rnd()*30+20 dis(LP)=dis(LP)+CPS moda(LP)=moda(LP)-CPS:if moda(LP)<0 then moda(LP)=0 } next for LC=0 to 1 LP=rnd()*6 if ad(en(LP))<3 then continue if res(LP)>0 then continue if bp(LP)=1 then break if posi(LP)<40 then continue if hk(en(LP))=0 then { if rnd()*2>1 then break if rnd()*8+rnd()*8+rnd()*8<spd(LP) then break if rnd()*60<spd(LP) then continue if rnd()*50<spd(LP) then continue rc(LP)=1 } if int(rnd()*20)=0 then if int(rnd()*8)=0 then spd(LP)=spd(LP)+70:bp(LP)=1:hk(en(LP))=0:rc(LP)=0 next break case 3:for LP=0 to 5 if posi(LP)<fd(LP) then dis(LP)=dis(LP)+fdd(LP) if abs(hs2(en(LP))-50)<rnd()*20 then if int(rnd()*6)=1 then dis(LP)=dis(LP)+8 if posi(LP)>40 then if posi(LP)<43 then if hs2(en(LP))<41 then if rnd()*60>hs2(en(LP)) then if int(rnd()*7)=3 then spd(LP)=spd(LP)-hs(en(LP))/4 if CN<20 then if hs2(en(LP))<20+rnd()*22 then dis(LP)=dis(LP)+25:continue if CN<50 then if hs2(en(LP))<50 then { if hac(LP)=5 then continue if rnd()*60>hs2(en(LP)) then dis(LP)=dis(LP)+zip(LP):continue if hac(LP)=4 then dis(LP)=dis(LP)+50-hs2(en(LP)):continue } if CN>85 then if hs2(en(LP))>50 then if rnd()*50+50<hs2(en(LP)) then dis(LP)=dis(LP)+25 if CN>60 then if hs2(en(LP))>83-rnd()*30 then { if CN>hs2(en(LP))+rnd()*40 then dis(LP)=dis(LP)+rnd()*20+3 if hac(LP)=5 then continue if hac(LP)=4 then dis(LP)=dis(LP)+15:continue if hac(LP)=7 then dis(LP)=dis(LP)+rnd()*40:continue if hac(LP)=2 then dis(LP)=dis(LP)+20:continue if hac(LP)=3 then dis(LP)=dis(LP)+zip(LP):continue } next case 4:if CN<3 then break if CN=25 then { NB=rnd()*30+50 for LP=0 to 5 if NB<hs2(en(LP)) then spd(LP)=spd(LP)-hs(en(LP))/3+ad(en(LP)) if int(rnd()*8)=5 then spd(LP)=hs(en(LP)) next break } if CN=65 then { NB=rnd()*30+20 for LP=0 to 5 spd(LP)=hs(en(LP)) if NB>hs2(en(LP)) then { spd(LP)=spd(LP)-hs(en(LP))/3 if int(rnd()*6)=5 then spd(LP)=hs(en(LP))-4 } next break } if CN=100 then { for LP=0 to 5 spd(LP)=hs(en(LP))+rnd()*8 next break } for LP=0 to 5 jun(LP)=0 next for LP=0 to 5 NB=0 for LC=0 to 5 if jun(LC)=1 then continue if dis(LC)>NB then NS=LC:NB=dis(LC) next juni(NS)=LP:jun(NS)=1 next NB=CN:NB=NB mod 3 if NB=0 then { for LP=0 to 5 if juni(LP)>3 then dis(LP)=dis(LP)+25 next break } for LP=0 to 5 if int(rnd()*260)=71 then spd(LP)=spd(LP)+8 if int(rnd()*60)=4 then moda(LP)=moda(LP)+rnd()*140 if abs(CN-hs2(en(LP)))<20 then dis(LP)=dis(LP)+zip(LP) next break endswitch v_disp() for LP=0 to 5 if bp(LP)>1 then { if int(rnd()*6)=5 then if int(rnd()*15)=0 then bp(LP)=0:pen(90-posi(LP),LP*3+7,graph(LP)+" ") continue } if dis(LP)/100>posi(LP) then { posi(LP)=posi(LP)+1 if res(LP)>0 then { if posi(LP)>94 then continue switch posi(LP) case 91:pen(0,LP*3+7,mid$(graph(LP),2,4)+g4+g4+g4+g4+g3+mid$(graph(LP),13,4)+b$(bp(LP))):break case 92:pen(0,LP*3+7,mid$(graph(LP),3,3)+g4+g4+g4+g3+mid$(graph(LP),14,3)+b$(bp(LP))):break case 93:pen(0,LP*3+7,mid$(graph(LP),4,2)+g4+g4+g3+mid$(graph(LP),15,2)+b$(bp(LP))):break case 94:pen(0,LP*3+7," "+g4+g3+" "):break default:pen(90-posi(LP),LP*3+7,graph(LP)+b$(bp(LP))) endswitch pen(4,LP*3+8,str$(res(LP))) } if res(LP)=0 then pen(90-posi(LP),LP*3+7,graph(LP)+b$(bp(LP))) if dis(LP)/100>posi(LP) then dis(LP)=posi(LP)*100+hs2(en(LP)) dis(LP)=dis(LP)+bos } if res(LP)>0 then continue if dis(LP)>8399 then res(LP)=finish:rec(en(LP),finish):w(finish)=LP+1:finish=finish+1:pen(4,LP*3+8,str$(res(LP))):spd(LP)=spd(LP)/3:if finish=2 then ro=382 next if ro>0 then { ro=ro+1 if ro=400 then bo=1 } if bo=1 then { if ro>450 then LCD=LCD+1 if LCD=2 then { LCD=0 for LP=0 to 6 if pay(LP)>0 then pay(LP)=pay(LP)-1:coin(LP)=coin(LP)+1:color 9:pen(LP*13+6,29,sasi(coin(LP),4)):color 3 next } switch ro case 420:/* color 9 fill(336,224,511,303,2) /*penbox(42,14,63,18) symbol(352,240,"単勝",1,1,1,1,0) symbol(352,272,"連複",1,1,1,1,0) /*pen(44,15,"単勝") /*pen(44,17,"連複") symbol(400,240,n$(w(1)),1,1,1,1,0) /*pen(50,15,n$(w(1))) pen(56,5," 1 ") color 5:pen(30,2,str$(w(1))+" "+h(en(w(1)-1))) color 3:pen(57,3,graph(w(1)-1)) /* for LP=0 to 5 /* pen(3,1+LP,str$(LP+1)+"("+str$(hs2(en(LP)))+") FD="+str$(fd(LP))+",LD="+str$(ld(LP))) /* next break case 432:if finish<3 then ro=431:break color 9:symbol(448,240,sasi(odds(w(1)-1),3),1,1,1,1,0) /*pen(56,15,sasi(odds(w(1)-1),3)) if w(1)>w(2) then symbol(400,272,n$(w(2))+"-"+n$(w(1)),1,1,1,1,0) else symbol(400,272,n$(w(1))+"-"+n$(w(2)),1,1,1,1,0) if odds(w(1)-1)>odds(w(2)-1) then symbol(448,272,sasi(odds(w(1)-1)/2*odds(w(2)-1)+(odds(w(2)-1)+ad(en(w(1)-1)))/2,3),1,1,1,1,0) else symbol(448,272,sasi(odds(w(2)-1)/2*odds(w(1)-1)+(odds(w(1)-1)+ad(en(w(2)-1)))/2,3),1,1,1,1,0) www=str$(w(1))+"-"+str$(w(2)) if w(1)>w(2) then www=str$(w(2))+"-"+str$(w(1)) for LP=0 to 6 for LP4=0 to 21 if b_coin(LP,LP4)>0 then if www=bt$(LP4) then pay(LP)=pay(LP)+odds(LP4)*b_coin(LP,LP4) if b_coin(LP,LP4)>0 then if LP4<6 then if w(1)=LP4+1 then pay(LP)=pay(LP)+odds(LP4)*b_coin(LP,LP4) win(LP)=pay(LP) next next for LP=0 to 6 if pay(LP)>0 then { ww(LP):color 9:penbox(LP*13,28,LP*13+10,30) if coin(LP)>9999 then pen(LP*13,29," coin:"+str$(coin(LP))) else pen(LP*13,29," coin:"+sasi(coin(LP),4)) color 3 } next color 5:pen(30,3,str$(w(2))+" "+h(en(w(2)-1))) color 3:pen(64,4,graph(w(2)-1)) break case 438:for LP=0 to 6 if join(LP)=2 then if win(LP)>0 then { get(ccp(LP)*82,512,ccp(LP)*82+81,601,gm) put(LP*13*8+2,371,LP*13*8+83,460,gm) } next break case 444:if finish<4 then ro=443:break color 5:pen(30,4,str$(w(3))+" "+h(en(w(3)-1))) color 3:pen(70,4,graph(w(3)-1)) break case 456:if finish<5 then ro=455:break color 5:pen(30,5,str$(w(4))+" "+h(en(w(4)-1))) color 3:pen(76,4,graph(w(4)-1)) break case 468:if finish<6 then ro=467:break color 5:pen(30,6,str$(w(5))+" "+h(en(w(5)-1))) color 3:pen(82,4,graph(w(5)-1)) break case 480:if finish<7 then ro=479:break color 5:pen(30,7,str$(w(6))+" "+h(en(w(6)-1))) color 3:pen(88,4,graph(w(6)-1)) break case 547:finish=8 for LP=0 to 6 if pay(LP)>0 then { coin(LP)=coin(LP)+pay(LP):pay(LP)=0 color 9:penbox(LP*13,28,LP*13+10,30) if coin(LP)>9999 then pen(LP*13,29," coin:"+str$(coin(LP))) else pen(LP*13,29," coin:"+sasi(coin(LP),4)) color 3 } next endswitch } if finish=8 then { comp=0 for LP=0 to 5 if posi(LP)<95 then comp=1 next if comp=0 then break } endwhile for LP=0 to 5 points(en(LP))=0 for LC=0 to 5 if hz(en(LP),LC)=1 then points(en(LP))=points(en(LP))+10 if hz(en(LP),LC)=2 then points(en(LP))=points(en(LP))+6 if hz(en(LP),LC)=3 then points(en(LP))=points(en(LP))+3 if hz(en(LP),LC)=4 then points(en(LP))=points(en(LP))+1 next if rc(LP)=1 then hk(en(LP))=1 rc(LP)=0 next wait(10) for LP=0 to 6 color 3 if coin(LP)=0 then { if join(LP)=2 then CPU_en(ccp(LP))=0:join(LP)=3 if join(LP)=1 then { join(LP)=0 if captain=LP then captain=7 player=player-1 } penbox(LP*13,28,LP*13+10,30):pen(LP*13+2,29,"GAMEOVER") } if win(LP)>0 then color 3:pen(LP*13,31," ") next wait(30) color 10:pw() color 3 for LP=0 to 5 pen(4,LP*3+8," ") pen(30,2+LP,space$(24)) next pen(6,24," ") pen(56,5," ") pen(63,5," ") pen(57,3,graph_c) pen(64,4,graph_c) pen(70,4,graph_c):pen(76,4,graph_c):pen(82,4,graph_c):pen(88,4,graph_c) fill(336,224,511,303,0) penbox(2,1,20,7) /*! wait(30) ro=0:bo=0 if race=108 then { color 9 palet(1,rgb(12,29,20)) fill(192,208,575,287,2) color 0 symbol(248,224,"本日のレースはすべて終了致しました",1,1,1,1,0) /*[参考] KERA : 影のERA symbol(248,256,"(ERA)エミサイス競星軌道管理協会",1,1,1,1,0) /*(Kernel of,Kibitzers of) for LP=0 to 29 R2=12-LP:if R2<0 then R2=0 G2=29-LP:if G2<0 then G2=0 B2=20-LP:if B2<0 then B2=0 wait(1) palet(1,rgb(R2,G2,B2)) next palet(1,1) hitany() color 3 fill(192,208,575,287,0) penbox(24,13,71,17) for LP=0 to 6 fill(LP*13*8+2,371,LP*13*8+83,460,0) next penbox(0,22,95,31) leave() seisan() camp() /* race=0:round=0 break } next endwhile while 1 endwhile end func char think(pn,can,mck) dim char hkt(5) int CP,tmo,kk,ram,klim,hika,hikap,hika2,hikap2,h1,h2,h3,h4 if mck<25 then tmo=3 /* ジリ貧・抑制モード if mck>70 then tmo=2 /* 青信号 if mck>150 then tmo=1 /* 安泰 char kn,must str oos klim=30 if mck<klim then klim=mck switch can case 0:/* Samuel while 1 kk=3:if tmo=3 then kk=2 if tmo=1 then kk=rnd()*5+4 ram=rnd()*6 if ad(en(ram))=4 then if rnd()*5>0 then continue if ad(en(ram))=3 then if rnd()*5>2 then continue if ad(en(ram))=1 then if rnd()*6>5 then kk=kk+5 if tmo=1 then if int(rnd()*12)=0 then kk=10+rnd()*2*5 if tmo=3 then if mck>2 then kk=3 else kk=mck if kk>klim then kk=klim if int(rnd()*30)=0 then ram=rnd()*21 if kk>mck then kk=mck mck=mck-kk klim=klim-kk ki(pn,kn,0)=ram ki(pn,kn,1)=ki(pn,kn,1)+kk kn=kn+1 if kn>1 then break if tmo=3 then break if klim=0 then break if mck=0 then break if int(rnd()*3)<2 then break endwhile break case 1:/* Sheckley while 1 kk=2+rnd()*3 ram=rnd()*6 if ad(en(ram))=4 then continue if ad(en(ram))=3 then if rnd()*4>2 then continue if ad(en(ram))=1 then if rnd()*6>5 then kk=kk+3 if tmo=1 then if int(rnd()*12)=0 then kk=kk+5 if tmo=3 then if mck>2 then kk=3 else kk=mck if kk>klim then kk=klim if int(rnd()*5)=0 then ram=rnd()*21 if kk>mck then kk=mck mck=mck-kk klim=klim-kk ki(pn,kn,0)=ram ki(pn,kn,1)=ki(pn,kn,1)+kk kn=kn+1 if tmo=3 then break if klim=0 then break if mck=0 then break if kn>2 then break if int(rnd()*8)>2 then break endwhile break case 4:/* Fredrick if int(rnd()*5)=0 then if hyher=0 then break while 1 kk=2+rnd()*3 ram=rnd()*6 if hg(en(ram))=11 then continue if ad(en(ram))=4 then if rnd()*5>0 then continue if ad(en(ram))=3 then if rnd()*5>2 then continue if ad(en(ram))=1 then if rnd()*6>5 then kk=kk+5 if tmo=1 then if int(rnd()*12)=0 then kk=10+rnd()*2*5 if tmo=3 then if mck>2 then kk=3 else kk=mck if kk>klim then kk=klim if int(rnd()*30)=0 then ram=rnd()*21 if kk>mck then kk=mck mck=mck-kk klim=klim-kk ki(pn,kn,0)=ram ki(pn,kn,1)=ki(pn,kn,1)+kk kn=kn+1 break endwhile break case 2:/* Marion for CP=0 to 5 if spd(CP)>hikap then hikap=spd(CP):hika=CP next hikap2=0 for CP=0 to 5 if CP=hika then continue if spd(CP)>hikap2 then hikap2=spd(CP):hika2=CP next ram=hika if hikap-hikap2<5 then { rn=rnd()*6 if rn>3 then ram=hika2 if rn=0 then { oos=str$(hika+1)+"-"+str$(hika2+1) if hika>hika2 then oos=str$(hika2+1)+"-"+str$(hika+1) for CP=0 to 20 if bt$(CP)=oos then ram=CP next } } kk=3:if rnd()*2>1 then kk=4 while 1 if kk>klim then kk=klim if kk>mck then kk=mck mck=mck-kk klim=klim-kk ki(pn,kn,0)=ram ki(pn,kn,1)=ki(pn,kn,1)+kk kn=kn+1 if klim=0 then break if kn=2 then break if rnd()*5>2 then break ram=rnd()*7:if ram=6 then ram=rnd()*21 kk=2 endwhile break case 3:/* Bruce hikap=499:hikap2=499 for CP=6 to 20 if odds(CP)<hikap then hika=CP:hikap=odds(CP):continue if odds(CP)=hikap then { if rnd()*3<2 then { if hikap2>hikap+rnd()*5 then hika2=hika:hikap2=hikap:hika=CP:hikap=odds(CP):continue hika=CP:hikap=odds(CP):continue } if rnd()*5>3 then hika2=CP:hikap2=odds(CP):continue } next ram=hika:kk=3+rnd()*3:if tmo=3 then kk=3:if rnd()*4<1 then if mck<10 then ram=rnd()*21:must=1 while 1 if must=1 then break if int(rnd()*5)=3 then break h1=ati(hika,0)-1:h2=ati(hika,1)-1 for CP=0 to 4 h3=h3+hz(en(h1),CP):h3=h3+hz(en(h2),CP) next h1=ati(hika2,0)-1:h2=ati(hika2,1)-1 for CP=0 to 4 h4=h4+hz(en(h1),CP):h4=h4+hz(en(h2),CP) next if abs(h3-h4)>12 then { if h3<h4 then ram=hika else ram=hika2 if rnd()*20>18 then kk=klim break } if rnd()*6>2 then ram=hika:break if rnd()*3>1 then { if h3<h4 then ram=hika else ram=hika2 break } h3=0:h4=0 h1=ati(hika,0)-1:h2=ati(hika,1)-1 h3=spd(h1)+spd(h2) h1=ati(hika2,0)-1:h2=ati(hika2,1)-1 h4=spd(h1)+spd(h2) if h3>h4 then ram=hika else ram=hika2 if mck>99 then if rnd()*12<2 then ram=rnd()*6:if ad(en(ram))=3 then ram=rnd()*6 break endwhile if kk>klim then kk=klim if kk>mck then kk=mck mck=mck-kk klim=klim-kk ki(pn,kn,0)=ram ki(pn,kn,1)=ki(pn,kn,1)+kk kn=kn+1 break case 5:/* Alice while 1 for CP=0 to 5 if h1=0 then if en(CP)=45 then ram=CP:must=1:h1=1:break if h2=0 then if en(CP)=50 then { if must=1 then if rnd()*4<2 then break ram=CP:must=1:h2=1:break } if hg(en(CP))=12 then if rnd()*4<1 then ram=CP:must=1:break next if int(rnd()*12)=4 then must=0 kk=2:if tmo=1 then kk=6 if tmo=2 then kk=4 if rnd()*6<1 then kk=1 if must=0 then { ram=rnd()*6 if ad(en(ram))=3 then if rnd()*5>2 then ram=rnd()*6 if ad(en(ram))=1 then if rnd()*6>3 then kk=kk+3 if tmo=3 then if mck>2 then kk=3 else kk=mck } if kk>klim then kk=klim if kk>mck then kk=mck mck=mck-kk klim=klim-kk ki(pn,kn,0)=ram ki(pn,kn,1)=ki(pn,kn,1)+kk kn=kn+1 if klim=0 then break if kn=3 then break if kn=1 then if rnd()*3>1 then continue if rnd()*5<3 then break endwhile break case 6:/* David for CP=6 to 20 if odds(CP)<hikap then hika=CP:hikap=odds(CP):continue if odds(CP)=hikap then { if rnd()*3<2 then { if hikap2>hikap+rnd()*5 then hika2=hika:hikap2=hikap:hika=CP:hikap=odds(CP):continue hika=CP:hikap=odds(CP):continue } if rnd()*5>3 then hika2=CP:hikap2=odds(CP):continue } next if odds(hika)<4 then kk=5 else kk=3 if int(rnd()*8)=0 then kk=kk+rnd()*3 ram=hika if kk>klim then kk=klim if kk>mck then kk=mck mck=mck-kk klim=klim-kk ki(pn,kn,0)=ram ki(pn,kn,1)=ki(pn,kn,1)+kk kn=kn+1 if klim=0 then break kk=2 ram=hika2 if rnd()*7<2 then ram=rnd()*6:if rnd()*3<1 then ram=rnd()*21 if kk>klim then kk=klim if kk>mck then kk=mck mck=mck-kk klim=klim-kk ki(pn,kn,0)=ram ki(pn,kn,1)=ki(pn,kn,1)+kk kn=kn+1 break case 7:/* Arthur while 1 kk=3:if kn=1 then kk=1 if kn>1 then kk=1 ram=rnd()*6 if ad(en(ram))=4 then continue if ad(en(ram))=3 then if rnd()*5>2 then continue if ad(en(ram))=1 then kk=kk*2 if tmo=1 then if int(rnd()*12)=0 then kk=10+rnd()*3*4 if tmo=3 then if mck>2 then kk=3 else kk=mck if kk>klim then kk=klim if int(rnd()*20)=0 then ram=rnd()*21:kk=2 if kk>mck then kk=mck mck=mck-kk klim=klim-kk ki(pn,kn,0)=ram ki(pn,kn,1)=ki(pn,kn,1)+kk kn=kn+1 if tmo=3 then break if klim=0 then break if mck=0 then break if kn=3 then break if int(rnd()*6)<2 then break endwhile break case 8:/* Niel for CP=0 to 5 if hkt(CP)=1 then continue if en(CP)=47 then ram=CP:must=1:hkt(CP)=1 if hg(CP)=13 then ram=CP:must=1:hkt(CP)=1 if hg(CP)=7 then ram=CP:must=1:hkt(CP)=1 next kk=3:if must=0 then ram=rnd()*6 if rnd()*365<12 then kk=klim/2 if kk>klim then kk=klim if kk>mck then kk=mck mck=mck-kk klim=klim-kk ki(pn,kn,0)=ram ki(pn,kn,1)=ki(pn,kn,1)+kk kn=kn+1 if klim=0 then break if rnd()*10>3 then break kk=rnd()*3+1:ram=rnd()*21 if kk>klim then kk=klim if kk>mck then kk=mck mck=mck-kk klim=klim-kk ki(pn,kn,0)=ram ki(pn,kn,1)=ki(pn,kn,1)+kk kn=kn+1 if klim=0 then break if rnd()*10>3 then break while 1 ram=rnd()*15+6 if rnd()*3>1 then break if odds(ram)>19 then continue break endwhile kk=2 if kk>klim then kk=klim if kk>mck then kk=mck mck=mck-kk klim=klim-kk ki(pn,kn,0)=ram ki(pn,kn,1)=ki(pn,kn,1)+kk kn=kn+1 break case 9:/* Frank while 1 kk=2+rnd()*3 ram=rnd()*6 if ad(en(ram))=4 then if rnd()*5>0 then continue if ad(en(ram))=3 then if rnd()*5>2 then continue if ad(en(ram))=1 then if rnd()*6>5 then kk=kk+5 if tmo=1 then if int(rnd()*12)=0 then kk=10+rnd()*2*5 if tmo=3 then if mck>2 then kk=1 else kk=mck if kk>klim then kk=klim if int(rnd()*10)=0 then ram=rnd()*21 if kk>mck then kk=mck mck=mck-kk klim=klim-kk ki(pn,kn,0)=ram ki(pn,kn,1)=ki(pn,kn,1)+kk kn=kn+1 if tmo=3 then break if klim=0 then break if mck=0 then break if kn>2 then break if int(rnd()*3)<2 then break endwhile break endswitch return(kn) endfunc func bet() dim int mati(6),page(6),curs(6),kam(6),hmv(5),hmm(5) str as int CP,LC,nnn,stic1,stri1,stic2,stri2,times,scren,benum,in,inc,nex int tam,mvc,stb dim char mc_s(6),hyhers(6) char mcomp,req for CP=0 to 6 if join(CP)=2 then if coin(CP)>peak(ccp(CP)) then peak(ccp(CP))=coin(CP) if join(CP)=1 then if CP=captain then if coin(CP)>peak(10) then peak(10)=coin(CP) ki(CP,0,1)=0:ki(CP,1,1)=0:ki(CP,2,1)=0:ki(CP,3,1)=0:ki(CP,4,1)=0:ki(CP,5,1)=0 mc_s(CP)=0 if join(CP)=2 then mc_s(CP)=think(CP,ccp(CP),coin(CP)) pay(CP)=0 win(CP)=0 b_num(CP)=0 for LC=0 to 21 b_coin(CP,LC)=0 next next times=15400 for in=4 to 6 if join(in)=2 then continue if join(in)=0 then continue bar(in,0,0) next while 1 if keysns()=0 then break as=inkey$(0) endwhile color 7:pw() while 1 in=0:inc=0 while 1 times=times-1 for CP=0 to 6 if join(CP)>0 then continue if join_red(CP)>0 then { join_red(CP)=join_red(CP)-1 if join_red(CP)=0 then { join(CP)=2 coin(CP)=50:peak(ccp(CP))=50 if enc(CP)<255 then enc(ccp(CP))=enc(ccp(CP))+1 mc_s(CP)=think(CP,ccp(CP),coin(CP)) if rnd()*3>1 then get(ccp(CP)*82,512,ccp(CP)*82+81,601,gm) else get(ccp(CP)*82,602,ccp(CP)*82+81,691,gm) put(CP*13*8+2,371,CP*13*8+83,460,gm) color 7:pw2(CP):pen(CP*13+2,31,cn$(ccp(CP))) } } next tam=times if tam mod 50=0 then if mvc=0 then { while 1 CP=rnd()*6 if hmv(CP)=1 then continue break endwhile hmm(CP)=hmm(CP)+1 color 3 switch mvc case 0:if hmm(CP)>6 then hmm(CP)=6:hmv(CP)=1:stb=stb+1:if stb=6 then stb=0:mvc=1:hmv(0)=0:hmv(1)=0:hmv(2)=0:hmv(3)=0:hmv(4)=0:hmv(5)=0 if hmm(CP)=1 then pen(16,9+CP*2,mid$(graph(CP),1,1)+g4+g3+mid$(graph(CP),12,1)) if hmm(CP)=2 then pen(15,9+CP*2,mid$(graph(CP),1,2)+g4+g4+g3+mid$(graph(CP),12,2)) if hmm(CP)=3 then pen(14,9+CP*2,mid$(graph(CP),1,3)+g4+g4+g4+g3+mid$(graph(CP),12,3)) if hmm(CP)=4 then pen(13,9+CP*2,mid$(graph(CP),1,4)+g4+g4+g4+g4+g3+mid$(graph(CP),12,4)) if hmm(CP)>4 then pen(12,9+CP*2,mid$(graph(CP),1,5)+g4+g4+g4+g4+g4+g3+mid$(graph(CP),12,5)) break endswitch } if times-5000<0 then in=9:break color 7:if times-5000<1800 then if atoi(right$(str$(times),2))>72 then color 6 pen(83,21,sasi((times-5000)/100,3)):color 7 switch nex case 0:if mati(6)=0 then { as=inkey$(0) if as<>"" then { for CP=0 to 2 if inkey$(0)="" then break next in=6:nex=1:mati(6)=18 if as=" " then inc=11 if as=chr$(30) then inc=1 if as=chr$(28) then inc=2 if as=chr$(31) then inc=3 if as=chr$(29) then inc=4 if as=chr$(&h1b) then inc=9 if as=chr$(13) then inc=8 if as="0" then inc=9 if as="H" then inc=7 if as="h" then inc=7 if as=chr$(11) then inc=5 break } } if mati(6)>0 then mati(6)=mati(6)-1 case 1:if mati(5)=0 then { stic1=stick(1) stri1=strig(1) if stic1>0 or stri1>0 then { in=5:nex=2:mati(5)=18 if stic1=6 then inc=2 if stic1=4 then inc=4 if stri1=1 then inc=11 if stri1=2 then inc=2 if stic1=8 then inc=1 if stic1=2 then inc=3 break } } if mati(5)>0 then mati(5)=mati(5)-1 case 2:if mati(4)=0 then { stic2=stick(2) stri2=strig(2) if stic2>0 or stri2>0 then { in=4:nex=0:mati(4)=18 if stic2=6 then inc=2 if stic2=4 then inc=4 if stri2=1 then inc=11 if stri2=2 then inc=2 if stic2=8 then inc=1 if stic2=2 then inc=3 break } } if mati(4)>0 then mati(4)=mati(4)-1 endswitch if in>0 then break nex=0 tam=times if times=15220 then { color 7 for CP=0 to 6 if join(CP)=2 then pen(CP*13+2,31,cn$(ccp(CP))) if join(CP)=1 then { if captain=CP then pen(CP*13+2,31,"CAPTAIN") else pen(CP*13+2,31,"OUTSIDER") } next color 3 } if tam mod 22=0 then if times+(rnd()*10*320)<14920 then { mcomp=mcomp+1 if mcomp=7 then mcomp=0 if hyhers(mcomp)=0 then if join(mcomp)=2 then if mc_s(mcomp)>0 then { for CP=0 to 5 if ki(mcomp,CP,1)>0 then { if hyher>0 then ki(mcomp,CP,1)=1:mc_s(mcomp)=1 if CP=0 then { get(ccp(mcomp)*82,512,ccp(mcomp)*82+81,601,gm) put(mcomp*13*8+2,371,mcomp*13*8+83,460,gm) } b_coin(mcomp,ki(mcomp,CP,0))=b_coin(mcomp,ki(mcomp,CP,0))+ki(mcomp,CP,1) coin(mcomp)=coin(mcomp)-ki(mcomp,CP,1) ki(mcomp,CP,1)=0 mc_s(mcomp)=mc_s(mcomp)-1 in=mcomp:inc=0 scren=3 if hyher>0 then hyhers(mcomp)=1 break } next if scren=3 then break } } endwhile if in=9 then { while 1 if keysns()=0 then break as=inkey$(0) endwhile color 10:pw3() return() } if scren=3 then scren=2 else scren=0 if join(in)=0 then if inc=11 then { join(in)=1:coin(in)=50:color 7:pw2(in):scren=1:inc=0 if player=0 then { captain=in if cap_enc<255 then cap_enc=cap_enc+1 pen(in*13+2,31,"CAPTAIN") peak(10)=50 } if player>0 then { pen(in*13+2,31,"OUTSIDER") } player=player+1 } if inc=9 then times=55 if inc=5 then { wait(4) color 3 for CP=0 to 6 fill(CP*13*8+2,371,CP*13*8+83,460,0) next penbox(0,22,95,31) wait(8):pen(35,24,"競技場を出ます。よろしいですか?") wait(8):nnn=yen(48,25):color 3:pen(35,24,space$(32)) if nnn=1 then { color 7:pw() for CP=0 to 6 if join(CP)=0 then color 3:pen(CP*13+2,29,"GAMEOVER"):continue color 7 if join(CP)=2 then { pen(CP*13+2,31,cn$(ccp(CP))) get(ccp(CP)*82,602,ccp(CP)*82+81,691,gm) put(CP*13*8+2,371,CP*13*8+83,460,gm) } LC=0 for nnn=0 to 21 if b_coin(CP,nnn)>0 then { color 9:pen(CP*13+4,22+LC,bt$(nnn)) color 3:pen(CP*13+7,22+LC,":") color 5:pen(CP*13+8,22+LC,sasi(b_coin(CP,nnn),2)) LC=LC+1 } next if join(CP)=1 then bar(CP,page(CP),curs(CP)) next continue } leave() seisan() camp() v_out=1 break } if inc=7 then { color 10 switch bos case 0:bos=15 pen(20,0,"(boost 1)") break case 15:bos=30 pen(20,0,"(boost 2)") break case 30:bos=0 pen(20,0," ") break endswitch color 3 } if inc=8 then if req=0 then { for CP=0 to 6 if join(CP)>0 then continue if join_red(CP)>0 then continue LC=rnd()*10 if CPU_en(LC)=1 then continue /* break にすると必ず左からエントリー join_red(CP)=50 ccp(CP)=LC CPU_en(LC)=1 req=1 break next } if join(in)=0 then continue if join(in)=1 then if hyhers(in)=1 then continue if inc>0 then if join(in)=2 then continue if inc=2 then page(in)=page(in)+1:scren=1:if page(in)=4 then page(in)=0 if inc=4 then page(in)=page(in)-1:scren=1:if page(in)=-1 then page(in)=3 if inc=1 then if curs(in)>0 then curs(in)=curs(in)-1:scren=1 if inc=3 then if curs(in)<5 then curs(in)=curs(in)+1:scren=1 if inc=11 then if coin(in)>0 then if kam(in)<30 then { benum=99 benum=page(in)*5+curs(in)+1 if page(in)=0 then benum=curs(in) if curs(in)=5 then if page(in)>0 then benum=99 if benum<99 then if b_coin(in,benum)=0 then { if b_num(in)=6 then benum=99 else b_num(in)=b_num(in)+1 if hyher>0 then hyhers(in)=1 } if benum<99 then if b_coin(in,benum)<30 then { scren=2 b_coin(in,benum)=b_coin(in,benum)+1 coin(in)=coin(in)-1 kam(in)=kam(in)+1 } } if scren=1 then bar(in,page(in),curs(in)) if scren=2 then { LC=0 color 7 for CP=0 to 21 if b_coin(in,CP)>0 then { color 9:pen(in*13+4,22+LC,bt$(CP)) color 3:pen(in*13+7,22+LC,":") color 5:pen(in*13+8,22+LC,sasi(b_coin(in,CP),2)) LC=LC+1 } next color 5 pen(in*13+6,29,sasi(coin(in),4)) } endwhile endfunc func bar(a,b,c) int Lu color 10 for Lu=0 to 5 if Lu=c then color 9 if Lu=5 then if b>0 then pen(a*13,27," "):color 10:continue switch b case 0:pen(a*13,22+Lu,bt$(Lu)):break case 1:pen(a*13,22+Lu,bt$(Lu+6)):break case 2:pen(a*13,22+Lu,bt$(Lu+11)):break case 3:pen(a*13,22+Lu,bt$(Lu+16)):break endswitch color 10 next endfunc func betc() int ZZ color 3 for ZZ=0 to 6 penbox(ZZ*13,22,ZZ*13+11,27) next endfunc func pw() int CC for CC=0 to 6 if join(CC)=0 then continue if join(CC)=3 then continue penbox(CC*13,28,CC*13+10,30) if coin(CC)>9999 then pen(CC*13,29," coin:"+str$(coin(CC))):continue pen(CC*13,29," coin:"+sasi(coin(CC),4)) next endfunc func pw3() int CC for CC=0 to 6 if join(CC)=0 then continue penbox(CC*13,29,CC*13+10,29) if coin(CC)>9999 then pen(CC*13,29," coin:"+str$(coin(CC))):continue pen(CC*13,29," coin:"+sasi(coin(CC),4)) next endfunc func pw2(CC) if join(CC)=0 then return() penbox(CC*13,28,CC*13+10,30) if coin(CC)>9999 then pen(CC*13,29," coin:"+str$(coin(CC))):return() pen(CC*13,29," coin:"+sasi(coin(CC),4)) endfunc func ww(n) color 11 pen(n*13,31,"WINNER + "):pen(n*13+8,31,str$(win(n))) color 3 endfunc func leave() int LC,CP while 1 LC=rnd()*7 if join(LC)=2 then break for CP=LC to 6 if join(CP)=2 then LC=CP:break next if join(LC)=2 then break for CP=1 to 6 if LC-CP<0 then break if join(LC-CP)=2 then LC=LC-CP:break next break endwhile if join(LC)=2 then { CP=0 if coin(LC)>220 then CP=2 if coin(LC)<68 then CP=1 if coin(LC)<18 then CP=3 if CP=3 then get(ccp(LC)*82,602,ccp(LC)*82+81,691,gm) else get(ccp(LC)*82,512,ccp(LC)*82+81,601,gm) put(210,361,291,450,gm):wait(8) color 7:pen(40,25,cn$(ccp(LC))+":"):wait(25) pen(40,26,come(ccp(LC),CP)) comet=len(come(ccp(LC),CP)) wait(6):color 5:pen(28,29,"coin:"+str$(coin(LC))) color 3:pen(40+comet,27,"△") TX=40+comet:TY=27:TT=1:hitany():wait(7) penbox(40,25,90,27) pen(28,29,space$(20)) fill(210,361,291,450,0) } for CP=0 to 20 v_disp() color 10:pen(0,CP+1,space$(96)) color 3:pen(0,CP,space$(96)) next endfunc func int yen(yx,yy) int yi,yc color 7 pen(yx,yy,"(( / ))") while 1 color 5:if yc=1 then color 6 pen(yx+3,yy,"はい") color 5:if yc=0 then color 6 pen(yx+9,yy,"いいえ") hitany() if as=chr$(29) then yc=0 if as=chr$(28) then yc=1 if as="4" then yc=0 if as="6" then yc=1 if as="5" then break if as=" " then break endwhile if yc=0 then pf(yx+3,yy,"はい",5,6) else pf(yx+9,yy,"いいえ",5,6) color 3:pen(yx,yy,space$(18)) return(yc) endfunc func seisan() int LS,LP,LN,addp,ap,xx char nn,na,hn dim char cio(10) dim int coyn(10),cost(10) str m$,mm$ m$=str$(gold) m$=space$(9-len(m$))+m$ color[,,,0] color 7 for LS=1 to 9 if mid$(m$,LS,1)=" " then continue xx=atoi(mid$(m$,LS,1)) for LN=0 to 4 pen(LS*9+5,24+LN,np(ng(xx,LN))) next next for LS=1 to 31 wait(0) color[,,,rgb(LS,LS,LS)] next wait(20) pen(35,0,"TODAY'S RESULT") wait(25) for LS=0 to 9 for LP=0 to 6 if join(LP)=2 then if ccp(LP)=LS then coyn(LS)=coyn(LS)+coin(LP) next cost(LS)=enc(LS)*50+2 if enc(LS)=0 then cio(LS)=1 next cio(10)=1 if cap_enc>0 then { for LP=4 to 6 if LP=captain then coyn(10)=coyn(10)+coin(LP):cost(10)=cap_enc*50+2 next cio(10)=0 } color 5:pen(29,2," name outlay gain (peak) result ") color 7 while 1 ap=-9999 na=0 for LS=0 to 10 if cio(LS)=1 then na=na+1 next if na=11 then break for LS=0 to 10 if cio(LS)=1 then continue if coyn(LS)-cost(LS)>ap then hn=LS:ap=coyn(LS)-cost(LS) next cio(hn)=1 if hn=10 then { pen(30,3+nn,"CAPTAIN") pen(41,3+nn,sasi(cap_enc*50+2,4)) pen(47,3+nn,sasi(coyn(10),5)) pen(54,3+nn,sasi(peak(10),5)) coyn(10)=coyn(10)-cost(10) pen(62,3+nn,sasi(coyn(10),5)) } if hn<10 then { pen(30,3+nn,cn$(hn)) pen(41,3+nn,sasi(enc(hn)*50+2,4)) pen(47,3+nn,sasi(coyn(hn),5)) pen(54,3+nn,sasi(peak(hn),5)) coyn(hn)=coyn(hn)-cost(hn) pen(62,3+nn,sasi(coyn(hn),5)) } nn=nn+1 wait(2) endwhile color 5:pen(48,3+nn,"Round Bonus: 0") color 7:if race>4 then pen(62,3+nn,sasi(race,5)):addp=race for LS=0 to 10 addp=addp+coyn(LS) next wait(37) xx=((9-len(str$(abs(addp))))*9+5)*8 if addp<0 then fill(xx,272,xx+47,287,10) if addp>0 then fill(xx,272,xx+47,287,7):fill(xx+16,256,xx+32,303,7) mm$=str$(abs(addp)) mm$=space$(9-len(mm$))+mm$ color 7 for LS=1 to 9 if mid$(mm$,LS,1)=" " then continue xx=atoi(mid$(mm$,LS,1)) for LN=0 to 4 pen(LS*9+5,15+LN,np(ng(xx,LN))) next next gold=gold+addp if gold<0 then gold=0 mm$=str$(gold) mm$=space$(9-len(mm$))+mm$ if addp<>0 then wait(35) for LS=1 to 9 if mid$(m$,LS,1)=mid$(mm$,LS,1) then continue if mid$(m$,LS,1)<>" " then { xx=atoi(mid$(m$,LS,1)) for LP=0 to 4 pen(LS*9+5,24+LP," ") if LP=4 then break for LN=0 to 3-LP pen(LS*9+5,25+LP+LN,np(ng(xx,LN))) next wait(0) next } xx=atoi(mid$(mm$,LS,1)) for LP=0 to 4 for LN=0 to LP pen(LS*9+5,28-LP+LN,np(ng(xx,LN))) next wait(1) next next wait(5) pen(83,21,"HITanyKEY") color 5:pen(80,21,"△"):pen(93,21,"△") TT=1:TX=93:TY=21:hitany() color 10:pen(80,21,space$(16)) color 3 xx=((9-len(str$(abs(addp))))*9+5)*8 fill(xx,256,xx+47,303,0) penbox(50,15,96,19) penbox(30,0,70,14) for LS=0 to 31 color[,,,rgb(31-LS,31-LS,31-LS)] wait(0) next penbox(0,24,96,28) color[,,,65535] for LP=0 to 9 CPU_en(LP)=0 enc(LP)=0 peak(LP)=0 next for LP=0 to 6 coin(LP)=0 join(LP)=0 ccp(LP)=0 join_red(LP)=0 next race=0 captain=0:cap_enc=0 endfunc func rec(n1,n2) int zp for zp=0 to 4 if hz(n1,zp)=0 then hz(n1,zp)=n2:break if zp=4 then { for zp=0 to 3 hz(n1,zp)=hz(n1,zp+1) next hz(n1,4)=n2:break } next endfunc func int cam(n) /* MENUpackage for DockCamp int C while 1 hitany() if as=chr$(30) or as="8" then if C>0 then { fill(48,C*16+384,280,C*16+399,0) C=C-1 fill(48,C*16+384,280,C*16+399,8) } if as=chr$(31) or as="2" then if C<n then { fill(48,C*16+384,280,C*16+399,0) C=C+1 fill(48,C*16+384,280,C*16+399,8) } if as=" " or as="5" then wait(3):break endwhile return(C) endfunc func coindisp() pen(1,21,"coin: ") pen(7,21,str$(gold)) endfunc func tokhit() /* tok()後 入力待ち TX=71:TY=29:TT=2:hitany() endfunc func selec_t(t;char) if t=0 then { symbol(18,420,"SELECT",1,1,0,3,0) symbol(19,420,"SELECT",1,1,0,3,0) } else { symbol(18,420,"SELECT",1,1,0,0,0) symbol(19,420,"SELECT",1,1,0,0,0) } endfunc func int selec() int L,N,M,C dim char RB(9)={10,10,10,10,10,10,10,10,10,10} color 3:pen(13,24,"( )") for L=0 to 9 color 6 if busy(L)=0 then color 5:box(M*25+100,415,M*25+123,504,15):line(M*25+101,504,M*25+122,504,0):RB(M)=L:M=M+1 pen(14+L,24,RL(L)) next color 7 for L=0 to 9 if RB(L)=10 then break corgs(RB(L)):put(L*25+102,417,L*25+121,503,gm) next selec_t(0) color 7 while 1 fill(C*25+102,508,C*25+121,510,10) pen(4,27,cn$(C)) TT=3:hitany() fill(C*25+102,508,C*25+121,510,0) pen(4,27,space$(len(cn$(C)))) if as="4" or as=chr$(29) then if C>0 then C=C-1 if as="6" or as=chr$(28) then if C+1<M then C=C+1 if as="s" then if busy(0)=0 then N=0: break if as="S" then if busy(1)=0 then N=1: break if as="m" then if busy(2)=0 then N=2: break if as="b" then if busy(3)=0 then N=3: break if as="f" then if busy(4)=0 then N=4: break if as="a" then if busy(5)=0 then N=5: break if as="d" then if busy(6)=0 then N=6: break if as="A" then if busy(7)=0 then N=7: break if as="n" then if busy(8)=0 then N=8: break if as="F" then if busy(9)=0 then N=9: break if as="5" or as=" " then N=RB(C):break endwhile for L=0 to 9 if RB(L)=N then C=L:break next for L=0 to 9 if C=L then continue fill(L*25+100,415,L*25+123,504,0) next for L=0 to 4 fill(C*25+102,508,C*25+121,510,10) wait(3) fill(C*25+102,508,C*25+121,510,0) wait(1) next wait(11) fill(100,415,348,504,0) pen(13,24," ") busy(N)=1 if M=1 then { for L=0 to 9 busy(L)=0 next } return(N) endfunc func corgs(n) /* リボルバーメニュウ用 細長UP画 switch n case 0 : get(22,512,41,601,gm):break case 1 : get(119,512,138,601,gm):break case 2 : get(191,512,210,601,gm):break case 3 : get(276,512,295,601,gm):break case 4 : get(359,512,378,601,gm):break case 5 : get(434,512,453,601,gm):break case 6 : get(521,512,540,601,gm):break case 7 : get(607,512,626,601,gm):break case 8 : get(689,512,708,601,gm):break case 9 : get(760,512,779,601,gm):break endswitch endfunc func tremor() /* ROCTOPUS:振動 int L for L=0 to 5 v_disp():home(0,0,1022-L*2) next for L=0 to 1 wait(1):home(0,3,1015) wait(1):home(0,6,1020) wait(1):home(0,0,1012) wait(1):home(0,1022,1015) next for L=0 to 3 wait(1):home(0,0,1016+L*2) next for L=0 to 2 wait(1):home(0,0,1021-L) next for L=0 to 2 wait(0):home(0,0,1020+L) next for L=0 to 1 v_disp():home(0,0,1020) v_disp():home(0,0,1022) next home(0,0,0) endfunc func str sect(n) str R switch n case 0:R="ブリッジ":break case 1:R="機関室":break case 2:R="格納庫":break case 3:R="医務室":break case 4:R="制御管理室":break case 5:R="第4資材室":break case 6:R="食堂":break case 7:R="園芸室":break endswitch return(R) endfunc func int birds() /* ROCTOPUS : 離床 int L,N,Re color 7 palet(3,rgb(c_r(11),c_g(11),c_b(11))) awake(0) stars=1 if CE=1 or CE=3 or CE=6 then { /* "TAKEOFF WITH FIREWORKS" pen(1,24,"着火担当") N=selec() pen(1,24," ") selec_t(1) crue(N,2):wait(30) if N=2 then crue(8,0) else crue(2,0) color 5:if N=2 then pen(12,26,cn$(8)+":") else pen(12,26,cn$(2)+":") color 7:pen(12,27,MS(N)+"、位置につきました"):wait(7) pen(12,28,itis(CE)+"、点火準備よし") TX=12:TY=29:TT=2:hitany() if N=2 then crue(8,1) else crue(2,1) penbox(12,26,60,29) pen(12,26,"〔"+sect(1)+"・"+cn$(N)+"〕") wait(20) pen(12,27,"点火!") corg(N,1):corp(2):wait(rnd()*3*15+15) pen(12,28,"( ボシュー )") /* :Eng(CE)=Eng(CE)-1 wait(8):tremor() TX=12:TY=29:TT=2:hitany() corp_c(2):penbox(12,26,60,29) crue(N,1) } if CE=4 then { pen(1,24,"盆栽作成") N=selec() pen(1,24," ") selec_t(1) crue(N,2):wait(30) corg(N,1):corp(2) pen(12,26,"〔"+sect(7)+"〕") pen(12,27,MS(N)+"が盆栽に取り組んでいます"):TX=12:TY=28:TT=2:hitany() corp_c(2) penbox(12,26,60,28) wait(15) pen(12,26,"〔"+sect(1)+"〕") wait(5) corg(N,0):corp(2) color 5:pen(12,27,cn$(N)+":"):color 7 wait(13) if N=7 then { pen(12,27,"完成したぞい。") } else { switch N case 0:pen(12,28,"できたよ"):break case 2:pen(12,28,"できました"):break case 8:pen(12,28,"アーサー、これでどうでしょう"):break case 5:pen(12,28,"はいこれ、ボンサイ"):break case 3:pen(12,28,"推進材にするのがもったいない逸品です"):break case 4:pen(12,28,"これどうぞ"):break case 1:pen(12,28,"機関長、見てください"):break case 6:pen(12,28,"鉢植えをカットしてきた"):break case 9:pen(12,28,"大胆にアレンジしてあるだろ?"):break endswitch TT=2:TY=29:hitany() corp_c(2) penbox(12,27,60,29) wait(11):corg(7,0):corp(2) color 5:pen(12,27,cn$(7)+":"):color 7 pen(12,28,"いったい、なんだコレは?!!") TT=2:hitany() } corg(7,1):corp(2) pen(12,29,"・・・・では、こいつをマルニにかける") TT=2:TY=30:hitany() penbox(12,27,60,30) penbox(12,26,60,30) corp_c(2) crue(N,1) } hitany() return(Re) endfunc /* memo /* : ロクトパスの航行ルート << birds() からの戻り値 >> /* R /* /* a)ランダムルート#1 [アイテムなどの条件が入手可能なイベント] << 0 >> /* b) #2 [ジェネレータ/テーブルによって作成されるお遊び] << 1 >> /* c)ミッション [本編とは直接無関係な単独シナリオ] << 2 >> /* d)ステージ [本編] << 3 >> /* e)ステージ [本編、一度きり] << 4 >> /* /* z)インターミッション ... 日常的なイベント。大抵はランダム << 5 >> 他干渉的 /* /* (推進機関との関連) /* どこにもたどり着かない/一度だけ特別な場所へ/ /* 前回と同じルート<=>ランダムを交互に/ /* /* /* /* /* (イベント発生アルゴリズムについて) /* /* /* /* func minus_driver(rot) /* ROCTOPUS: voyage main part int L,LL,N,OUT,nn,lim int LPC /* loop counter int numb int PLAN /* STAGE lim=5 /* intermission if rot>5 then lim=rot-6 /* while 1 switch lim case 0:/* RANDOM ROUTE break case 2:/* MISSION /* if PLAN=0 then { break case 5:/* INTERMISSION endswitch LPC=LPC+1 if OUT>0 then break /* OUT .. 1)return 2)hard landing back[accident,etc.] endwhile cls vpage(0) fill(0,0,767,511,0) vpage(1) endfunc func reki2() int L,LL color 7 LL=6 while 1 for L=0 to 6 if L<LL then continue pen(37,9+L,infos(16+L-LL)) next if LL=0 then break LL=LL-1 wait(5) endwhile TX=51:TY=16:TT=2:hitany() penbox(37,9,63,16) endfunc func camp() /* ROCTOPUS : Dock Camp char ke int r1,g1,b1,L,MD,IK,C,SA=1,LL str sb color 10:pen(0,21,space$(96-len(infos(2)))+infos(2)) pen(1,21,"coin: "+str$(gold)) color 7 LL=rnd()*3 while 1 C=0 cambox(7) fill(48,C*16+384,280,C*16+399,8) pen(8,24,infos(3)) pen(8,25,infos(4)) pen(8,26,infos(5)) pen(8,27,infos(6)) pen(8,28,infos(7)) C=cam(4) pf(8,24+C,infos(C+3),7,0) wait(2) fill(48,C*16+384,280,C*16+399,0) color 7 penbox(8,24,40,29) MD=C switch MD case 0:/* market wait(32) color 7 toki=1 if Sen(2)=0 then { cambox(0) tokbox(3) corg(0,0):corp(0) wait(20) tok(come(0,4),0):corg(4,0):corp(0):wait(20):tok(come(4,5),0):corg(0,0):corp(0):wait(20):tok(come(0,5),0) corp_c(0) tokbox(0) wait(20) cambox(7) } wait(18) color 7 pen(6,24,"《ここはヤミ市場です》") pen(6,25,"目つきの鋭い男が、トレーラー") pen(6,26,"の後部からこちらを見ている。") pen(6,27,"そして素早く手招きした。") TT=1:TX=33:TY=28:hitany():penbox(6,24,40,29) wait(20) while 1 color 7:pen(8,24,infos(8)) if gold<560 then color 6 pen(8,25,infos(9)) color 7:if gold<1400 then color 6 pen(8,26,infos(10)) color 7:if gold<790 then color 6 pen(8,27,infos(11)) color 7 pen(8,28,infos(12)) C=0 fill(48,C*16+384,280,C*16+399,8) C=cam(4) pf(8,24+C,infos(8+C),0,7):color 7:pen(8,24+C,infos(8+C)) wait(17) if C=4 then fill(48,C*16+384,280,C*16+399,0):penbox(6,24,40,29):break if C<4 then tokbox(7) switch C case 0:tok("「あんた達の噂は聞いている・・・・もしここを出るつもりだったら、『ゲンジン』が役に立つはずだ」",0):tokbox(0):wait(15):break case 1:tok("「『ゲンジン』は大気圏離脱パッケージだ。中古だが25発分しっかり充填しなおしてある。燃焼推進機関の代用品だな」",0) tokbox(15):wait(15):pen(41,24,itis(1)):pen(41,25,"560cです "+infos(13)):L=yn(41,26):color 7 if L=0 then if gold<560 then pen(41,27,infos(14)):tokhit():break if L=1 then break if Eng(1)>0 then pen(41,27,infos(15)):tokhit():break gold=gold-560:color 10:coindisp():color 5 Eng(1)=25:tokhit():break case 2:tok("「こいつは自動調理機だ。食材が持つ水分をほとんど奪いとってしまうが、味付けは悪くない。あと、メニューを自分で決めたがるタイプのようだ」",0) tokbox(15):wait(15):pen(41,24,itis(13)):pen(41,25,"1400cです "+infos(13)):L=yn(41,26):color 7 if L=1 then break if Exi(0)=1 then pen(41,27,infos(15)):tokhit():break if L=0 then if gold<1400 then pen(41,27,infos(14)):tokhit():break gold=gold-1400:color 10:coindisp():color 5 pen(41,27,itis(13)+"を購入"):Exi(0)=1:tokhit():break case 3:tok("「スクラップ寸前で軍から引き取ったやつだ。音は撃てるが、打撃力は失われている。特殊兵器なので修理は無理だ」",0) tokbox(15):wait(15):pen(41,24,itis(21)):pen(41,25,"790cです "+infos(13)):L=yn(41,26):color 7 if L=1 then break if Eqi(6)=1 then pen(41,27,infos(15)):tokhit():break if L=0 then if gold<790 then pen(41,27,infos(14)):tokhit():break gold=gold-790:color 10:coindisp():color 5 pen(41,27,itis(21)+"を購入") Eqi(6)=1:tokhit():break endswitch fill(48,C*16+384,280,C*16+399,0):tokbox(0):penbox(41,24,72,29) endwhile pen(8,24,"キャンプに戻ります") hitany():pen(8,24,space$(21)) if Sen(2)=0 then { tokbox(3) corg(0,0):corp(0) wait(12) tok(come(0,6),0) tokbox(0):corp_c(0) } Sen(2)=1:wait(20) break case 1:/* captain room wait(17) while 1 C=0 penbox(8,24,35,28) pen(8,24,"データ・ディスプレイ") pen(8,25,"けいばくん評価リスト") pen(8,26,"ハンディ・ライブラリ") pen(8,27,"船長室を出る") fill(48,384,280,399,8) C=cam(3) fill(48,C*16+384,280,C*16+399,0) if C=3 then penbox(8,24,35,28):wait(5):C=0:break for L=0 to 3 if C<>L then pen(8,24+L,space$(33)) next switch C case 0: color 9:penbox(39,0,59,2) pen(41,1,"I N V E N T O R Y") get(0,692,81,781,gm) put(659,367,740,426,gm) color 7:pen(3,1,"ROCTOPUS DATA") color 5:IK=2 pen(3,2,"推進機関") for L=0 to 12 if Eng(L)>0 then pen(13,IK,itis(L)):IK=IK+1 next pen(3,IK,"拡張装置") for L=0 to 5 if Exi(L)>0 then pen(13,IK,itis(L+13)):IK=IK+1 next pen(3,IK,"整備状況") if RR>0 then color 7:pen(13,IK,"修理中です") if RR=0 then color 5:pen(13,IK,"修理完了しました") color 7:pen(37,4,"ITEMS") color 5:IK=5 for L=0 to 14 if Eqi(L+4)>0 then pen(37,IK,itis(L+19)):IK=IK+1 next if Sen(0)>0 then { color 7 pen(70,9,"BAQEMOMKK MONSTERS") IK=10:color 5 for L=0 to 3 if Eqi(L)=1 then pen(70,IK,bqm(L)):IK=IK+1 next } color 7:pen(70,1,"RADIO 'R' RATINGS"):IK=2 color 5 for L=0 to 2 if Rdp(L,0)>0 then { sb=itis(Rdp(L,0)+50) if len(sb)>24 then {pen(70,IK,left$(sb,24)):pen(70,IK+1,mid$(sb,25,12))}else pen(70,IK,sb) sb=str$(Rdp(L,1)):sb=space$(3-len(sb))+sb+"."+right$(time$,1)+"%" pen(89,IK+1,sb) IK=IK+2 } next color 7:pen(83,28,"航宙履歴:") sb="回"+str$(Sen(50))+"/ 戦"+str$(Sen(49))+"/ 跳"+str$(Sen(48))+"/ 賞"+str$(Sen(47)) color 5:pen(92-len(sb),29,sb) box((91-len(sb))*8,445,740,485,8) box((91-len(sb))*8+1,445,741,485,8) color 7 TX=93:TY=20:TT=1:hitany() penbox(0,0,95,20):penbox(92-len(sb),28,92,29) fill((91-len(sb))*8,445,741,485,0) fill(659,367,740,426,0) break endswitch endwhile break case 2:/* wait(5):cambox(0) toki=1 tokbox(3) corg(9,0):corp(0):wait(12):tok(doc(19),0) corg(2,0):corp(0):wait(8):tok(doc(20),0) corg(3,0):corp(0):wait(8):tok(doc(21),0) corg(7,0):corp(0):wait(8):tok(doc(22),0) corg(6,0):corp(0):wait(12):tok(doc(23),0) corg(0,0):corp(0):wait(8):tok(doc(24),0) corg(1,0):corp(0):wait(8):tok(doc(25),0) corg(8,0):corp(0):wait(8):tok("駄目だこりゃ",0) tokbox(0) corp_c(0) toki=0 break case 3:/* roctopus wait(12) cambox(0) if RR>0 then { corg(7,0) /* Get graph :Arthur(Front) corp(0) /* Put graph :nearside of talk window tokbox(3) wait(29) toki=0 tok(come(7,4),0) L=yn(41,26):color 7:toki=1 if L=0 then pen(41,27,"うむ、やってみよう"):TT=1:TX=71:TY=29:hitany() penbox(41,24,72,29):corp_c(0) if L=1 then tokbox(0):break } else { tokbox(3) toki=0 switch LL case 0:corg(2,0):corp(0):wait(29):tok(come(2,4),0):break case 1:corg(8,0):corp(0):wait(29):tok(come(8,6),0):break case 2:corg(9,0):corp(0):wait(29):tok(come(9,5),0):break endswitch L=yn(41,26):color 7:toki=1 penbox(41,24,72,29) corp_c(0):tokbox(0) if L=1 then break } if Sen(50)=0 then { tokbox(3) wait(20) corg(3,0) corp(0) wait(29) toki=1 tok(come(3,4),0):corp_c(0):wait(5) corg(1,0) corp(0) wait(29) tok(come(1,4),0):corp_c(0):wait(5) corg(6,0) corp(0) wait(29) tok(come(6,5),0) wait(20) corp_c(0) } else wait(20) tokbox(0) vpage(0) IK=0 for L=0 to 12 if Eng(L)>0 then IK=IK+1 next if IK=1 then { color 7 for L=0 to 12 if Eng(L)>0 then pen(30,23,itis(L)+"が主動力となります"):break next TX=54:TY=25:TT=2:hitany() penbox(30,23,76,25):vpage(1) CE=L } else { C=0 for L=0 to IK-1 fill(280,16*(L+7)+1,297,16*(L+7)+15,12) next for L=0 to 12 if Eng(L)>0 then pen(38,7+C,itis(L)):C=C+1 next vpage(1) color 7 fill(304,60,447,84,5) symbol(320,64,"主動力機関選択",1,1,1,0,0) C=0 while 1 fill(280,16*(C+7)+1,297,16*(C+7)+15,3) hitany() fill(280,16*(C+7)+1,297,16*(C+7)+15,12) if as="8" or as=chr$(30) then if C>0 then C=C-1 if as="2" or as=chr$(31) then if C+1<IK then C=C+1 if as="5" or as=" " then { for L=0 to 1 fill(280,16*(C+7)+1,297,16*(C+7)+15,12):wait(3) fill(280,16*(C+7)+1,297,16*(C+7)+15,2):wait(5) next L=-1:LL=-1 repeat LL=LL+1 if Eng(LL)>0 then L=L+1 until L=C C=LL pen(30,23,itis(C)+"を主動力に使用します") pen(30,25,"よろしいですか?") L=yn(47,25):color 7:penbox(30,23,66,25) if L=0 then break } endwhile vpage(0) for L=0 to 12 fill(280,16*(L+7)+1,297,16*(L+7)+15,0) pen(30,L+7,space$(34)) next fill(304,60,447,84,0) CE=C } vpage(0) sleep(12) picnic() vpage(1) L=birds() reki2() /* if Sen(50)=0 then ... minus_driver(L) stars=0 break case 4:/*return to stadium fill(42,378,286,470,0) wait(28) for L=0 to 21 color 10:pen(0,21-L,space$(96)) color 3:pen(0,22-L,space$(96)) v_disp() next color 10:pen(0,0,space$(96-len(infos(0)))+infos(0)) wait(23) color 10:pw():color 3 for L=0 to 6 pen(L*13+2,29,"GAMEOVER") next break endswitch if MD=4 then break endwhile endfunc func char yn(x,y) char flip while 1 color 7:pen(x,y," はい / いいえ ") color 11:if flip=0 then pen(x,y," はい ") else pen(x+8,y," いいえ ") hitany() if as="4" or as=chr$(29) then flip=0 if as="6" or as=chr$(28) then flip=1 if as=" " or as="5" then break endwhile /*color 7:pen(x,y," はい / いいえ ") wait(8) if flip=1 then { pf(x+8,y," いいえ ",11,7) pf(x+8,y," いいえ ",11,10) color 11:pen(x+8,y," いいえ ") } else { pf(x,y," はい ",11,7) pf(x,y," はい ",11,10) color 11:pen(x,y," はい ") } wait(22) return(flip) endfunc func camz() TT=1 TX=33:TY=28 hitany() pen(33,28," ") endfunc func tokbox(n) box(320,378,585,486,n) box(319,378,586,486,n) endfunc func tokboxB() box(3,412,483,505,15):box(4,412,482,505,12) endfunc func tokclr(n) if n=1 then penbox(0,26,59,30) if n=0 then penbox(41,24,72,29) endfunc func cambox(n) box(43,378,285,470,n) box(42,378,286,470,n) endfunc func tok(ts;str,tn;char) /* 文字列を数行に分けて表示する (対象範囲) 0:tokbox 1:tokboxB int spos /* 文字変数ts内の読みだし位置 (( 先頭は1 )) int slen /* 残り文字数 int pa /* 表示予定文字数 int L char lin /* 現在の行数 (-1) char limi /* 最大行数 (-1) char leg /* 行毎の最大文字数 char px /* 表示開始位置 /* 表示範囲: LOCATION A) X= 41 ~ 70 , Y= 24 ~ 29 ( 全角文字 15個 x 6行 ) /* /* B) X= 2 ~ 59 , Y= 26 ~ 30 ( 28個 x 5行 ) spos=1 slen=len(ts) limi=5 :if tn=1 then limi=4 leg=30 :if tn=1 then leg=56 while 1 pa=leg px=41 :if tn=1 then px=2 /*if slen-spos+1 < 31 then pen(41,lin+24,mid$(ts,spos,30)):break if tn=0 then if lin=5 then if mid$(ts,spos+28,2)<>"。" then if mid$(ts,spos+28,2)<>"!" then if mid$ (ts,spos+28,2)<>"?" then { for L=0 to 12 if mid$(ts,spos+26-L*2,2)="。" then pa=28-L*2:break if mid$(ts,spos+26-L*2,2)="!" then pa=28-L*2:break if mid$(ts,spos+26-L*2,2)="?" then pa=28-L*2:break next } if tn=0 then if lin<5 then { if mid$(ts,spos+24,2)="。" then pa=26 if mid$(ts,spos+26,2)="。" then pa=28 } for L=0 to 14 +13*tn if L*2+1>pa then break if mid$(ts,spos+L*2,1)="C" then pa=L*2:break if mid$(ts,spos+L*2,1)="#" then pa=L*2:break if mid$(ts,spos+L*2,2)="@" then pa=L*2:break if mid$(ts,spos+L*2,2)="%" then pa=L*2:break next pen(px,lin+24+tn*2,mid$(ts,spos,pa)) spos=spos+pa:if spos>len(ts) then break if mid$(ts,spos,2)="。" or mid$(ts,spos,2)="、" or mid$(ts,spos,2)="っ" or mid$(ts,spos,2)="!" or mid$(ts,spos,2)="?" then { pen(71,lin+24,mid$(ts,spos,2)) spos=spos+2:if spos>len(ts) then break } if mid$(ts,spos,1)="#" then { if pa>0 then lin=lin+1 wait(8) color 5:pen(px,lin+24+tn*2,cn$(atoi(mid$(ts,spos+1,1)))):color 7 spos=spos+2 } lin=lin+1 if mid$(ts,spos,1)="C" then { color atoi(mid$(ts,spos+1,1)) if pa=0 then lin=lin-1 spos=spos+2 } if mid$(ts,spos,2)="%" then { hitany() if tn=1 then penbox(0,26,59,30) else penbox(41,24,72,29) lin=0 spos=spos+2 } if mid$(ts,spos,2)="@" then spos=spos+2 slen=len(ts)-spos+1 if lin=limi+1 then { TT=2:TX=71:TY=29 if tn=1 then TT=2:TX=61:TY=30 hitany() if tn=1 then penbox(0,26,59,30) else penbox(41,24,72,29) wait(6) lin=0 } endwhile if toki=1 then { TX=71:TY=29:TT=2 if tn=1 then TT=2:TX=61:TY=30 hitany() if tn=1 then penbox(0,26,59,30) else penbox(41,24,72,29) wait(6) } endfunc func enter() int zp,zp2 color 9 color [,0] for zp=7 to 20 pen(17,zp,space$(73)) next color [,rgb(12,19,17)] wait(2) color [,rgb(12,29,20)] wait(6) pen(17,7," L Name Odds 先・・・・|・・・・追 comment 前走 ") pen(19,12, "・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") pen(19,16, "・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") pen(19,20, "・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") color 9 wait(11) epitapha_odds_makes() for zp=0 to 5 wait(1) pen(19,9+zp*2,str$(zp+1)) pen(22,9+zp*2,h(en(zp))) pen(55+hs2(en(zp))/10,9+zp*2,"<") pen(49,9+zp*2,sasi(odds(zp),3)) if hac(zp)=1 then pen(68,9+zp*2,"絶好調") if int(rnd()*3)=1 then { if hac(zp)=2 then pen(68,9+zp*2,"仕上がり良") if hac(zp)=3 then pen(68,9+zp*2,"抜け出るか") if hac(zp)=4 then pen(68,9+zp*2,"脚周り安定") if hac(zp)=5 then pen(68,9+zp*2,"猛ダッシュ") if hac(zp)=6 then pen(68,9+zp*2,"調整不足か") if hac(zp)=7 then pen(68,9+zp*2,"追込み強い") } for zp2=0 to 4 if hz(en(zp),zp2)>0 then { color 9:if hz(en(zp),zp2)=1 then color 5 pen(79+zp2*2,9+zp*2,str$(hz(en(zp),zp2))) if zp2>0 then color 9:pen(78+zp2*2,9+zp*2,"・") } next color 9 next color 5 for zp=0 to 4 pen(58,2+zp,bt$(zp+6)+": "+str$(odds(zp+6))) pen(68,2+zp,bt$(zp+11)+": "+str$(odds(zp+11))) pen(78,2+zp,bt$(zp+16)+": "+str$(odds(zp+16))) next endfunc func enter_c() int zp color 3 for zp=6 to 23 pen(6,zp,space$(84)) next penbox(58,1,88,5) endfunc func epitapha_odds_makes() dim int msp(5),pri(5) int hmn,tkn int omdl,un int mp,mmp,ZLP,ya,yaa for LP=0 to 5 if ad(en(LP))=1 then hmn=hmn+1 if ad(en(LP))=2 then tkn=tkn+1 ya=0 for ZLP=0 to 5 if ZLP=LP then continue if hs(en(LP))<hs(en(ZLP)) then ya=ya+1 next if ya>2 then pri(LP)=1 if ya=5 then pri(LP)=2 next omdl=2 if hmn=1 then omdl=0 if hmn=2 then omdl=0:if tkn>2 then un=1 if hmn>2 then omdl=1 if hmn=0 then { if tkn=0 then omdl=2:un=3 if tkn=1 then omdl=1 if tkn=2 then omdl=1:un=1 if tkn>2 then omdl=2:un=2 } for LP=0 to 5 ya=0:yaa=0 for ZLP=0 to 4 if hz(en(LP),ZLP)=1 then ya=ya+1 if hz(en(LP),ZLP)=0 then { if ad(en(LP))=1 then { if int(rnd()*3)=0 then ya=ya+1:yaa=yaa+1:continue if int(rnd()*3)>0 then yaa=yaa+1 } if ad(en(LP))=2 then { if int(rnd()*5)=0 then ya=ya+1:continue if int(rnd()*5)>2 then yaa=yaa+1 } if ad(en(LP))=3 then if int(rnd()*3)=0 then yaa=yaa+1 continue } if hz(en(LP),ZLP)<4 then yaa=yaa+1 next switch ad(en(LP)) case 1:odds(LP)=2 if omdl=0 then break if omdl=1 then odds(LP)=3 if ya=0 then if yaa<3 then odds(LP)=3 if yaa<2 then odds(LP)=odds(LP)+1 break case 2:odds(LP)=3 if ya<2 then if yaa<3 then odds(LP)=odds(LP)+1 if un>0 then odds(LP)=odds(LP)+1 break case 3:odds(LP)=4:if omdl=2 then odds(LP)=3 if yaa<3 then odds(LP)=odds(LP)+1 if omdl<2 then odds(LP)=odds(LP)+1 if un>0 then odds(LP)=odds(LP)+1 break case 4:odds(LP)=7:if omdl=0 then odds(LP)=11 for ZLP=0 to 2 odds(LP)=odds(LP)+hz(en(LP),ZLP) next if yaa=0 then odds(LP)=odds(LP)+4 if hz(en(LP),0)=6 then odds(LP)=odds(LP)+6 break endswitch if hyher=1 then odds(LP)=(odds(LP)+3)*3 if hyher=2 then odds(LP)=odds(LP)*3 odds(LP)=odds(LP)+pri(LP) next mp=6 for LP=0 to 4 for ZLP=LP+1 to 5 odds(mp)=odds(ZLP)/2*odds(LP)+(odds(LP)+ad(en(ZLP)))/2 if odds(LP)>odds(ZLP) then odds(mp)=odds(LP)/2*odds(ZLP)+(odds(ZLP)+ad(en(LP)))/2 if odds(mp)>999 then odds(mp)=999 mp=mp+1 next next endfunc func str infos(n) str S switch n /* バケオック case 0:S="Rem Runner Stadium, Baqemomkk Emysice ":break case 1:S="Roctopus the Spaceboat, Emysice ":break case 2:S="Roctopus Dock Camp, Baqemomkk Emysice ":break case 3:S="ヤミ市場で買い物をする":break case 4:S="船長室へはいる":break case 5:S="会議召集":break case 6:S="ロクトパス号出発":break case 7:S="スタジアムへ行く":break case 8:S="男に話しかける":break case 9:S=itis(1)+" (560c)":break case 10:S=itis(13)+" (1400c)":break case 11:S=itis(21)+" (790c)":break case 12:S="店を出る":break case 13:S="買いますか?":break case 14:S="お金が足りません":break case 15:S="すでに所有しています":break case 16:S="ナイス・トゥ・ミー宙!":break case 17:S="ロクトパス号でなんとか":break case 18:S="星系外まで脱出したいと":break case 19:S="お考えね?じゃ3つの鍵":break case 20:S="~ 突破 発見 和解 ~":break case 21:S="このうちのどれかを胸に":break case 22:S="レッツゴー。グバーイ!":break case 25:S="":break endswitch return(S) endfunc func title() int voi,L,TER,NB,TR,TIM,LL vpage(0) voi=rnd()*2 palet(14,0) for L=0 to 1 symbol(35+L,390,"remrunners",2,1,2,14,0) symbol(23+L,415," hyher ",2,1,2,14,0) symbol(35+L,440," padock ",2,1,2,14,0) symbol(325+L,470,"1998 cornercept",1,1,1,15,0) symbol(320+L,409,"HIT ANY KEY",1,1,2,7,0) next vpage(1) TIM=-1400 color 3 while 1 if keysns()=0 then break as=inkey$(0) endwhile L=0 while 1 voi=rnd() as=inkey$(0) if as<>"" then break if TR=0 then { TIM=TIM+1 if TIM=120 then { v_disp() palet(14,rgb(L*2+1,L*2+1,L*2+1)) L=L+1 if L=16 then { TR=1 NB=atoi(right$(time$,1)) NB=atoi(right$(str$(NB+5),1)) } TIM=0 } } if TR=2 then { TIM=TIM+1 if TIM=120 then { v_disp() palet(14,rgb(30-L*2,30-L*2,30-L*2)) L=L+1 if L=16 then { TR=1 NB=atoi(right$(time$,1)) NB=atoi(right$(str$(NB+5),1)) } TIM=0 } } if TR=1 then if atoi(right$(time$,1))=NB then { NB=atoi(right$(str$(NB+2),1)) if TER<16 then { pen(6,30,space$(26)):wait(1) pen(6,30,space$((26-len(doc(TER+3)))/2)+doc(TER+3)) } if TER=17 then pen(6,30,space$(26)) if TER=18 then pen(6,30,"POOR GAMES 2in1 :FREE PLAY") if TER>20 then { switch TER case 21:pen(6,30,space$(26)) color 5:pen(62,25,"けいばくんX68 テキストピンボール・α"):color 3:break case 23:pen(62,27,"Hyher race of") pen(62,28,"text runners.") pen(62,29,"Featuring mad") pen(62,30,"Baqemomkkrace.") pen(78,27,"Flicking Words") pen(78,28,"like rolling ") pen(78,29,"ball,on Planet") pen(78,30,"Playborad.") break case 24:pen(60,24,"・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") pen(60,31,"・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") for LL=25 to 30 pen(60,LL,"・"):pen(93,LL,"・") next L=0:TR=2 break case 25:penbox(61,25,92,30):break case 26:color 1:pen(79,30,"ROCTOPUS: CREW"):break case 28:color 3:pen(79,30," "):break case 29:corg(0,rnd()*2):corp(1):pen(72,28,space$(10)):pen(72,28,cn$(0)):break case 31:corg(1,rnd()*2):corp(1):pen(72,28,space$(10)):pen(72,28,cn$(1)):break case 33:corg(2,rnd()*2):corp(1):pen(72,28,space$(10)):pen(72,28,cn$(2)):break case 35:corg(3,rnd()*2):corp(1):pen(72,28,space$(10)):pen(72,28,cn$(3)):break case 37:corg(4,rnd()*2):corp(1):pen(72,28,space$(10)):pen(72,28,cn$(4)):break case 39:corg(5,rnd()*2):corp(1):pen(72,28,space$(10)):pen(72,28,cn$(5)):break case 41:corg(6,rnd()*2):corp(1):pen(72,28,space$(10)):pen(72,28,cn$(6)):break case 43:corg(7,rnd()*2):corp(1):pen(72,28,space$(10)):pen(72,28,cn$(7)):break case 45:corg(8,rnd()*2):corp(1):pen(72,28,space$(10)):pen(72,28,cn$(8)):break case 47:corg(9,rnd()*2):corp(1):pen(72,28,space$(10)):pen(72,28,cn$(9)):break case 49:corp_c(1):penbox(60,24,93,31):break case 53:L=0:TR=0:break endswitch } TER=TER+1:if TR=0 then TER=0 } endwhile fill(320,409,453,433,0) color 5 pen(6,30,space$(26)) for L=0 to 7 pen(45,26," ") wait(2) fill(35,390+L*3,280,392+L*3,0) fill(35,415+L*3,280,417+L*3,0) pen(45,26,"READY") wait(2) fill(35,440+L*3,280,442+L*3,0) next color 3 pen(45,26," ") fill(30,390,560,490,0) palet(14,rgb(c_r(14),c_g(14),c_b(14))) if debug_sw=1 then { wait(21) while 1 corg(rnd()*10,0):corp(1) color 5:pen(72,28,"デバッグモードです") color 3:pen(73,29,"1)voyage 2)text") L=0 pen(73,30," [ESC]cansel") while 1 color 3:if L=0 then color 11 pen(73,29,"1)voyage") color 3:if L=1 then color 11 pen(83,29,"2)text") hitany() if as="4" or as=chr$(29) then L=0 if as="6" or as=chr$(28) then L=1 if as="5" or as=" " then break if as=chr$(&h1b) then L=2 : break endwhile wait(15) color 3:penbox(72,28,95,30):corp_c(1) if L=2 then break if L=0 then Sen(50)=1:camp():Sen(50)=0 if L=1 then { toki=1 tokboxB() tok(doc(51),1) toki=0:tok("@ズガーン",1):tremor():tok("@ガリガリバキボキズガシャーン",1):tremor():wait(10):toki=1:tokclr(1) tok(doc(52),1) tok(doc(53),1) tok(doc(54),1) tok(doc(55),1) tok(doc(56),1) tok(doc(57),1):crue(0,2) vpage(0):wait(20):vpage(1) tok(doc(58),1) tok(doc(59),1) tokclr(1) } endwhile } for L=0 to 15 palet(15,rgb(31-L*2,31-L*2,31-L*2)) wait(1) next pen(6,30,space$(26)) palet(15,65535) endfunc func hitany() int ts,ts2,dr str ha$ while 1 if keysns()=0 then break rnd() ha$=inkey$(0) endwhile while 1 HAK=HAK+1 if HAK>400-stars*200 then { HAK=0 switch TT case 0:break case 1:pen(TX,TY," "):TT=2:break case 2:pen(TX,TY,"△"):TT=1:break case 3:TT=4:palet(3,0):break case 4:TT=3:palet(3,rgb(crgb(6),crgb(7),crgb(8))):break endswitch } SH=SH+1:if SH=8 then SH=0 if stars=1 then bluebells(SH) ha$=inkey$(0) if ha$<>"" then break endwhile TT=0 palet(3,rgb(crgb(6),crgb(7),crgb(8))) as=ha$ endfunc func bluebells(N) if sls(N,4)>0 then { if sls(N,1)+sls(N,5)<>100 then circle(383,200,sls(N,1)+sls(N,5),0,sls(N,0),sls(N,0),256) sls(N,4)=sls(N,4)+1 sls(N,1)=sls(N,1)+smv(sls(N,3),sls(N,1)/13) if sls(N,1)+sls(N,5)>109 then if sls(N,0)>194 then if sls(N,0)<396 then sls(N,4)=0:sls(N,1)=0 if sls(N,1)+sls(N,5)>80 then if sls(N,0)>220 then if sls(N,0)<320 then sls(N,4)=0:sls(N,1)=0 if sls(N,1)+sls(N,5)>sls(N,2) then sls(N,4)=0:sls(N,1)=0 if sls(N,1)>0 then if sls(N,1)+sls(N,5)>100 then circle(383,200,sls(N,1)+sls(N,5),15,sls(N,0),sls(N,0),256) else circle(383,200,sls(N,1)+sls(N,5),2,sls(N,0),sls(N,0),256) HAK=HAK+3 } if sls(N,4)=0 then { sls(N,5)=0 if rnd()*3<1 then sls(N,5)=rnd()*70 sls(N,0)=rnd()*360 sls(N,3)=rnd()*3 sls(N,2)=129:if sls(N,5)=0 then if rnd()*8<1 then sls(N,2)=rnd()*70+60 sls(N,4)=-rnd()*60-4 } if sls(N,4)<0 then sls(N,4)=sls(N,4)+1:if sls(N,4)=0 then sls(N,4)=1:circle(383,200,sls(N,1)+sls(N,5),2,sls(N,0),sls(N,0),256) endfunc func wait(w) int i for i=0 to w SH=SH+1:if SH=8 then SH=0 if stars=1 then bluebells(SH) v_disp() v_disp(1) next endfunc func str sasi(s,k) str sr sr=str$(s) sr=space$(k-len(sr))+sr return(sr) endfunc func pen(x,y,s;str) locate x,y print s; endfunc func penbox(x,y,xx,yy) int xl for xl=y to yy pen(x,xl,space$(xx-x+1)) next endfunc func pf(x,y,s;str,c1,c2) color c2 pen(x,y,s) wait(2) color c1 pen(x,y,s) wait(2) color c2 pen(x,y,s) wait(2) color c1 pen(x,y,s) wait(2) color 3 pen(x,y,space$(len(s))) endfunc func ipcload(filename;str) int hand,f,fuu,fee,serve,ann,sep,bg int ref char altin dim int wolf(3000),ed(255),nz(99) hand=fopen(filename,"r") ref=fread(ed,1,hand) ref=fread(nz,100,hand) ref=fread(wolf,128,hand) for f=0 to 127 ann=wolf(f) shr 16 c_b(f*2)=ann/1024 fuu=ann mod 1024 c_g(f*2)=fuu/32 c_r(f*2)=fuu mod 32 ann=wolf(f) shl 16 ann=ann shr 16 c_b(f*2+1)=ann/1024 fuu=ann mod 1024 c_g(f*2+1)=fuu/32 c_r(f*2+1)=fuu mod 32 next ref=fread(ed,2,hand) sep=ed(0) ann=ed(0) shl 15 ann=ann shr 15 fee=ann/1024 bg=fee g(0)=sep shr 17 g(1)=ann mod 1024 g(2)=ed(1) ref=fread(wolf,nz(bg)/4,hand) for serve=0 to nz(bg)/4 g(serve*3+3)=wolf(serve) shr 20 ann=wolf(serve) shl 12 ann=ann shr 12 g(serve*3+4)=ann/1024 g(serve*3+5)=ann mod 1024 next g(ref)=0:g(g(2)+3)=0 ref=fcloseall() endfunc func ipc_col(p) int belle,alec if p=16 then { for belle=0 to 255 palet(belle,rgb(c_r(belle),c_g(belle),c_b(belle))) next return() } alec=p*16 for belle=0 to 15 palet(belle,rgb(c_r(belle+alec),c_g(belle+alec),c_b(belle+alec))) next endfunc func int trace() /* ikaspoke:TRACEcs (Remrunner Version) int mm int nnx,nny int cc,wm mm=3 while 1 if g(mm)=0 then break if wm>g(1) then break switch g(mm) case 1:/* CIRCLE circle(g(mm+1),g(mm+2),g(mm+3),g(mm+4)) if g(mm+5)=1 then circle(g(mm+1)+1,g(mm+2),g(mm+3),g(mm+4)) mm=mm+6 break case 2:/* LINE(CONTINUE) line(nnx,nny,g(mm+1),g(mm+2),g(mm+3)) if g(mm+4)=1 then line(nnx+1,nny,g(mm+1)+1,g(mm+2),g(mm+3)) nnx=g(mm+1) nny=g(mm+2) mm=mm+5 break case 3:/* BOX box(g(mm+1),g(mm+2),g(mm+3),g(mm+4),g(mm+5)) if g(mm+6)=1 then box(g(mm+1)+1,g(mm+2),g(mm+3)+1,g(mm+4),g(mm+5)) mm=mm+7 break case 5:/* PSET pset(g(mm+1),g(mm+2),g(mm+3)) if g(mm+4)=1 then pset(g(mm+1)+1,g(mm+2),g(mm+3)) mm=mm+5 break case 6:/* FILL fill(g(mm+1),g(mm+2),g(mm+3),g(mm+4),g(mm+5)) mm=mm+6 break case 8:break case 10:/* CIRCLE PLUS cc=g(mm+6) if cc>519 then cc=(cc-511)*((cc-512)/8)+511 circle(g(mm+1),g(mm+2),g(mm+3),g(mm+7),g(mm+4),g(mm+5),cc) if g(mm+8)=1 then circle(g(mm+1)+1,g(mm+2),g(mm+3),g(mm+7),g(mm+4),g(mm+5),cc) mm=mm+9 break case 11:/* LINE(NORMAL) line(g(mm+1),g(mm+2),g(mm+3),g(mm+4),g(mm+5)) if g(mm+6)=1 then line(g(mm+1)+1,g(mm+2),g(mm+3)+1,g(mm+4),g(mm+5)) nnx=g(mm+3) nny=g(mm+4) mm=mm+7 break case 12:/* PAINT paint(g(mm+1),g(mm+2),g(mm+3)) mm=mm+4 break endswitch wm=wm+1 endwhile return(wm) endfunc func str come(n,nb) str s switch n case 0:/* samuel switch nb case 0:s="当然だよ、俺は探測長なんだもの":break case 1:s="次はグワッともうけたいねェ":break case 2:s="新しい装置買おうぜ、船長!":break case 3:s="グェフー、八百長なのかもなコレ!":break case 4:s="ヤミ市ですか?俺が案内しますよ。すぐそこだけどね。":break case 5:s="ヘエそりゃ大変・・。じゃあ船長、行きますよ。":break case 6:s="武器が無いとなると、もっと機動力が必要かな。宇宙船かっぱらうとか・・あッ冗談です。":break case 9:s="はらへった":break case 10:s="グェフー、メシクレメシクレ":break endswitch break case 1:/*sheckley switch nb case 0:s="運がよかった":break case 1:s="なんて不毛なレースなのだろう":break case 2:s="夢のようだ":break case 3:s="早く帰りましょう。風邪ひきますよ":break case 4:s="なるほど、強引に抜け出すべき頃合かもしれません。ただ、現在の装備でどこまでやれるか・・・・。":break case 9:s="(グウー)がまんがまん。":break case 10:s="なかなか食事時間が来ないのですが":break endswitch break case 2:/*marion switch nb case 0:s="なかなかのもんでしょう":break case 1:s="だめでした・・・":break case 2:s="フフフッ、ご覧なさいな船長?":break case 3:s="えェッと・・・・":break case 4:s="ロクトパス、離陸体制に入ります。よろしいですか?":break case 9:s="おなかが減りましたね":break case 10:s="船長、キッチンにカエルが!!まあ無断で!":break endswitch break case 3:/*bruce switch nb case 0:s="まだ上を狙えますよ":break case 1:s="パッとしないっスー":break case 2:s="故郷のトマト畑を思い出します":break case 3:s="もう帰るって?":break case 4:s="おっ、待ってました!@いよいよ打って出るわけだ!":break case 9:s="(グーウ)・・船長、食事にしませんか?":break case 10:s="さあ、今のうちに何か食べましょう!":break endswitch break case 4:/*fredrick switch nb case 0:s="ホクホク":break case 1:s="あーあ。":break case 2:s="燃料買って出発しようよ":break case 3:s="そんな目で見るなよォ・・・・":break case 4:s="セーブしますか?":break case 5:s="全然関係ないけど待ってー。@ゲームデータのセーブは大気圏に突入する時にしかできません。セーブができない時もあります。それじゃあ。":break case 9:s="なにか食べたいな":break case 10:s="(ギュウ)船長のおに、いけずー":break endswitch break case 5:/*alice switch nb case 0:s="ミノーちゃん、ワンワン、またね":break case 1:s="あー面白かった!":break case 2:s="作戦にかかりましょう、船長":break case 3:s="サミュエルでも走らせましょうか":break case 9:s="おなかすいちゃったー":break case 10:s="ごはん!":break endswitch break case 6:/*david switch nb case 0:s="カンが冴えてたよな":break case 1:s="これだけか・・":break case 2:s="やったぜー船長。見ろコレ":break case 3:s="キューむかつく!":break case 4:s="【フランクの作戦案に対する意見】@船長、あの戦闘機乗りはただ壮大に暴れたい気持ちだけで先の作戦案を提出したものと思われます。未知の星域にあって私達は、反動的な振る舞いは避けねばいけません。「積み荷」を確実に取り戻すためにも、慎重な決断を期待します。":break case 5:s="食糧の積み込みは完了!":break case 9:s="みんなー、はらへってないか?":break case 10:s="ガマン大会は別の日にしような船長・・・・":break endswitch break case 7:/*arthur switch nb case 0:s="勝ったぞ、やれやれだ":break case 1:s="わしは機械整備の方が性に合っとる":break case 2:s="ガハハハ、夕食は豪勢に行かんとな":break case 3:s="まともに走れんのか連中は・・・・":break case 4:s="修理がまだ途中なんだが、本当に出るつもりか?":break case 9:s="機関室よりブリッジへ・・メシはまだかあ?":break case 10:s="仕事に身が入らんなあ・・メシはまだかあ?":break endswitch break case 8:/*niel switch nb case 0:s="とっても簡単":break case 1:s="そもそも奴らはナニモン?":break case 2:s="ギャンブルまんざい!":break case 3:s="プンスカ":break case 4:s="船長。この星について少し分かりましたのでご報告します。このバケオックーは非常に複雑な軌道を描いて、星系じゅうを迷子のヘビみたいに進んでます。こういうのを遊星っていうんですか?":break case 5:s="さらに重力圏不発雲が異様に濃く、通常の離脱パックではとても大気圏外までもちませんね。4倍はキック力が要ります。そのレベルのパッケージといえば、25連発の「ゲンジン」が有名ですけど・・、ここには無いって言われまして・・。ヤミ市でものぞいてみますか?":break case 6:s="離陸準備に移ります。@いいですか船長?":break case 9:s="チョコバットか切れてきた・・・・":break case 10:s="停止寸前・・食事にしましょう":break endswitch break case 9:/*frank switch nb case 0:s="無事帰艦しました!":break case 1:s="爆発パワー野郎は御免だね":break case 2:s="アンタが大将、俺、撃墜王!":break case 3:s="二度と来るかって思いますよ":break case 4:s="【ポーストン邸襲撃作戦・案】@理不尽な罪状により我々を軟禁処分にしたポーストン氏に対し、我々は抵抗を試みるべきです。まずは奴を問いただすため、強引ですがこちらから出向いて接触をはかる必要があります。簡単にいえば襲撃です(以下略)":break case 5:s="イヤッホーキャプテン、@出撃ですか?":break case 9:s="おなかペコペコだよ":break case 10:s="うわー、めまいがする!":break endswitch break endswitch return(s) endfunc func str itis(n) str R switch n case 0:R="アキネス粒子増幅":break /* ...............推進機関各種 case 1:R="25連発「玄人」":break case 2:R="MOM130プロプ":break case 3:R="4連発「蛾煉瓦」":break case 4:R="盆栽推進機マルニ":break case 5:R="NAM-010モッカイロ":break case 6:R="11連発「サク」":break case 7:R="キックバッカー":break case 8:R="マハー2号戦車":break case 9:R="":break case 10:R="合成斥力音波駆動":break case 11:R="ガビッジ座反応軸推進":break case 12:R="流星フック「かに」":break case 13:R="EPH17Cヘルグリラー":break /* ................ここより拡張装置 case 14:R="三能マニピュレータ":break case 15:R="チャッカさん":break case 16:R="ガル偵察頭脳ロケット":break case 17:R="寸止め式手刀デコイ":break case 18:R="船外目玉プレート":break case 19:R="ヒステリア・7cmレンチ":break /* ................ここよりアイテム case 20:R="琴弓「ギャラクシー」":break case 21:R="ヘボウ小型音響高射砲":break case 22:R="サバイバル・フルート":break case 23:R="打撃楽器「レゴッス」":break endswitch return(R) endfunc func str doc(n) str R switch n case 0:R="諸君、元気そうでなりよりだ。さて我々は何も君達をそこへ幽閉しようというのではない。個人的には先の件を忘れても良いと思っている。が、君達は今、全エミサイスの過半数の住民から敵意を買っている。(英雄)の葬式を台無しにした野蛮人を叩けという声が強いのだ。":break case 1:R="かれらは皆、ひどく落胆し、いささか不機嫌でもある。我らの(英雄)は星系外で事故死したのだよ・・・・。不変政府では貴船の身元確認に手をやいているところだ。くれぐれも今は静かにしておき給え。身の保証はできない。なお、押収された積み荷に関しては私の管轄外だ。":break case 2:R="私としてはこの文書を送るのが精一杯である。バケオックーは君達にとって安全な監獄となるだろう。不変大佐 G・7・ポーストン 追記。運が悪いといえば、あれは最悪だったな。君達のあの曲ときたら・・・・。今後のためにも、あれは破棄しておくことをすすめる。":break case 3:R="エミサイス星系にて":break case 4:R="大きなお葬式があり":break case 5:R="星という星が参列する中":break case 6:R="英雄の棺が運ばれた":break case 7:R="そんな最中に":break case 8:R="宇宙船ロクトパス号は":break case 9:R="どんちゃんさわぎで航行":break case 10:R="何も知らずに通過した":break case 11:R="なんたる壮大な無礼行為かと":break case 12:R="戦闘挺につかまえられた":break case 13:R="":break case 14:R="放り込まれたのは":break case 15:R=" 競星《バケオックー》":break case 16:R="":break case 17:R="レースで儲けようか、諸君!":break case 18:R="そしてまた宇宙に出よう・・":break case 19:R="・・・・だから、連中はずっとここに俺たちを閉じ込めておくつもりなんだよ。じっとしてたって何にもなりゃしないさ。一発お見舞いしてやるんだ!":break case 20:R="どのような一発?@ポルカ粒子砲を取り上げられたのに、どうやって・・・・":break case 21:R="手はある。あの時かけた曲をもう一回流そう。連中をおびき出すことができる筈だ。そしてなにか・・":break case 22:R="待った!あの時、なんの曲をかけたのか、覚えてるか?":break case 23:R="・・・・・・・・。@バカ笑いしていたような・・・・@叫びながら小走りしてたような":break case 24:R="ああそうだった。確かコルク栓をまとめて便所の隅に蹴り込んでいたんだ":break case 25:R="そんなはずは・・。わたしはフライパンの前に行って、フォーキラン誘導弾との類似性検証にコルク栓を占拠していたのだ・・":break case 30:R="【重力圏不発雲】@人工のガス雲。独立した情報認識機能があり、無登録もしくは無許可の飛行物体に反応し、物体の上昇力に負担を掛ける性質をもつ。外部からの進入には干渉しない。これの登場により、惑星間貿易と治安責任問題による混乱は基本的には解決した。":break case 31:R="【放送波推進】@銀河全域をカバーする規模で運用されるローカル放送中継システムを利用した宇宙船の推進機構を指す。ごく弱いレンジの放送を発信し、それが一定以上の人気を獲得すると、指向性の補強ビームが届く。これを推進力に変換する、高度な技術。違法。":break case 32:R="【宇宙時間】@ロクトパス号のブリッジにおける船内時間区分は、立時、隣時、影時、酸時、光時、餅時、電時、眠時、禅時の9つからなる。それぞれ「LRASKHDMZ」と表記することもある。提唱者はマブチモー星の植物学者で、当船のクルーはアレンジをして使用。":break case 33:R="":break case 34:R="":break case 35:R="":break case 36:R="":break /* これよりミッション *** case 51:R="#0なにか・・・・あれっ#2モトオラ級の未確認船、後方より接近。いやな速度・・%#0ぶつける気だ!#3船底フラスコ引っ込め!緩衝死角調整、@・・ヒエー%#5ぶつかるの?#8そうです、ぶつかってくるんです!つかまって!%#2友好信号応答なし!#6だろうナァ・・・・ウハハハ・・":break case 52:R="C5海賊@C7動くな!%#0ワオ、素早いねC5海賊@C7改造しやすいマシンってのは、玄関が多いもんだ。まあ、@俺達の船もそうだが。さて・・・・船長は、あんたか%C5海賊BC7@クルーの命はあんた次第。用が済めば我々は黙って出てくぜ。・・この船にある盆栽を出しな!":break case 53:R="#6ぼ・・盆栽?#3ボンサイとは何だ、ニール%#8「盆栽」とは、植物を観賞用に手を加えつつ、鉢の上で@育てるという園芸の様式らしいですね#0ヘエ、そんなの載っけてたか?%#2ロビーのテーブル脇にある太陽ナッツの木じゃないかしら#8なるほど、あれでしたか、盆栽は":break case 54:R="C5海賊@C7・・・・テメェら、チョロチョロするんじゃねえ!@C5海賊B@C7・・・・おい、あったぞ。これか・・・・?@何か妙な気がするが・・・・?%C5シオミリン@C7そいつじゃないな。センサーは別の盆栽に反応している・・@捜し出せ!@C5海賊BC7へいさー":break case 55:R="#0あんたが大将?@C5シオミリン@C7・・・・そんなところだ。我々は海賊船レッド・ゾーンの者・・@お前達があの時の葬式に乱入したチンドン屋か?@#6冗談じゃないよ!通りすぎただけなんだ・・・・@C5シオミリンC7@だろうな。そのおかげで、こっちはやり易くなった":break case 56:R="#2?@C5シオミリン@C7あの星は、お前達に照準を移したのだからな@ゴーラム、マズル、盆栽はまだ見つからないのか!?@C5海賊C7@ハ、ハイ・・こいつら、隠し持ってるんじゃないすか?@C5海賊BC7@へたな抵抗してっと、ぶっこわすぜ!":break case 57:R="#3もうじゅうぶん壊れてるけど、@盆栽に覚えがないからどうしようもないよ・・%C5Arthur:<機関室> C7@じつは・・・・わしの鉢植えが部屋にあるんだが・・・・@C5海賊たちC7@それだ!@よし、そこのカエル、奴の部屋に案内しろ":break case 58:R="C5海賊C7@旦那、これですぜ%C5シオミリンC7@これか?・・ふむ、スキャナにかけてみよう。(ピコー)@C5携帯BS・音声出力C7@ウオッ?この・・伐採のようでいて、抑制の利いた荒々しさ・・・・左右非対称性の過剰なる自然。みずみずしい活着。78得点。":break case 59:R="C5海賊BC7@ヒャーッッフォッ!C5@海賊C7@こいつは(銀河)級ですよ、恐らく%C5@シオミリンC7@そうとは限らん。念のためにそこの太陽ナッツも持って帰るぞ@・・・・では諸君、お騒がせしたな@わたしは、シオミリン。《レッド・ゾーン》艦長だ。@また逢おう。":break case 61:R="":break case 62:R="":break case 63:R="":break case 64:R="":break case 65:R="":break case 66:R="":break case 67:R="":break case 68:R="":break case 69:R="":break case 70:R="":break case 71:R="":break case 72:R="":break case 73:R="":break case 74:R="":break case 75:R="":break case 76:R="":break case 77:R="":break case 78:R="":break case 79:R="":break case 80:R="":break case 81:R="":break case 82:R="":break case 83:R="":break case 84:R="":break case 85:R="":break case 86:R="":break case 87:R="":break case 88:R="":break case 89:R="":break case 90:R="":break case 91:R="":break case 92:R="":break case 93:R="":break case 94:R="":break case 95:R="":break case 96:R="":break case 97:R="":break case 98:R="":break case 99:R="":break case 100:R="":break case 101:R="":break case 102:R="":break case 103:R="":break case 104:R="":break case 105:R="":break case 106:R="":break case 107:R="":break case 108:R="":break case 109:R="":break case 110:R="":break case 111:R="":break case 112:R="":break case 113:R="":break case 114:R="":break case 115:R="":break case 116:R="":break case 117:R="":break case 118:R="":break case 119:R="":break case 120:R="":break case 121:R="":break case 122:R="":break case 123:R="":break case 124:R="":break case 125:R="":break case 126:R="":break case 127:R="":break case 128:R="":break case 129:R="":break case 130:R="":break case 131:R="":break case 132:R="":break case 133:R="":break case 134:R="":break case 135:R="":break case 136:R="":break case 137:R="":break case 138:R="":break case 139:R="":break case 140:R="":break case 141:R="":break case 142:R="":break case 143:R="":break case 144:R="":break case 145:R="":break case 146:R="":break case 147:R="":break case 148:R="":break case 149:R="":break case 150:R="":break case 151:R="":break case 152:R="":break case 153:R="":break case 154:R="":break case 155:R="":break case 156:R="":break case 157:R="":break case 158:R="":break case 159:R="":break case 160:R="":break case 161:R="":break case 162:R="":break case 163:R="":break case 164:R="":break case 165:R="":break case 166:R="":break case 167:R="":break case 168:R="":break case 169:R="":break case 170:R="":break case 171:R="":break case 172:R="":break case 173:R="":break case 174:R="":break case 175:R="":break case 176:R="":break case 177:R="":break case 178:R="":break case 179:R="":break case 180:R="":break endswitch return(R) endfunc func str MS(n) /*@@ str R switch n case 0:R="サミュエル":break case 1:R="シェクリイ":break case 2:R="マリオン":break case 3:R="ブルース":break case 4:R="フレドリック":break case 5:R="アリス":break case 6:R="デイヴィッド":break case 7:R="アーサー":break case 8:R="ニール":break case 9:R="フランク":break case 10:R="キャプテン":break case 11:R="船長":break case 12:R="機関室":break case 13:R="医務室":break case 14:R="ブリッジ":break case 15:R="格納庫":break case 16:R="弾薬庫":break case 17:R="コンテナ":break case 18:R="":break case 19:R="より":break case 20:R="まってください":break case 21:R="通信":break case 22:R="メダル信号":break case 23:R="すまんが、ひとりこっちへまわしてくれ":break case 24:R="だめだこりゃ":break case 25:R="解析中です":break case 26:R="えーと・・・・":break case 27:R="了解":break case 28:R="はい":break case 29:R="はいな":break case 30:R="おっと":break case 41:R="待機してますよ":break case 42:R="なんでしょう":break case 43:R="やってみます":break case 44:R="はいこちら":break case 45:R="なんですか":break case 46:R="あら":break case 47:R="ありゃ":break case 48:R="あれ":break case 49:R="おや":break case 50:R="ガーン":break case 51:R="あいたー":break case 52:R="反応があります":break case 53:R="反応":break case 54:R="なんだこりゃ":break case 55:R="みたい":break case 56:R="です":break case 57:R="偽装":break case 58:R="商船":break case 59:R="貨物船":break case 60:R="採掘ポート":break case 61:R="あります":break case 62:R="ありません":break case 63:R="ある":break case 64:R="ない":break case 65:R="応援をよこしてください":break case 66:R="あやしい":break case 67:R="本船は現在":break case 68:R="なんとかなるだろう":break case 69:R="ありました":break case 70:R="このあたりに":break case 71:R="燃料が少なくなってきました":break case 72:R="燃料":break case 73:R="きた":break case 74:R="じゃないか":break case 75:R="かわします":break case 76:R="つっこみます":break case 77:R="よけます":break case 78:R="にげます":break case 79:R="なんとかします":break case 80:R="接舷します":break case 81:R="します":break case 82:R="しました":break case 83:R="したようです":break case 84:R="しています":break case 85:R="確認":break case 86:R="大破":break case 87:R="突破":break case 88:R="衝突":break case 89:R="回避":break case 90:R="被弾":break case 91:R="発進":break case 92:R="停止":break case 93:R="故障":break case 94:R="致命的":break case 95:R="緊急":break case 96:R="修復":break case 97:R="かなり":break case 98:R="ではありません":break case 99:R="できません":break case 100:R="しません":break case 101:R="ブロック":break case 102:R="機能":break case 103:R="問題":break case 104:R="可能":break case 105:R="不可能":break case 106:R="できます":break case 107:R="発見":break case 108:R="到着":break case 109:R="処置":break case 110:R="爆発":break case 111:R="コースター":break case 112:R="トレイ":break case 113:R="ボックス":break case 114:R="カップ":break case 115:R="星系":break case 116:R="恒星":break case 117:R="惑星":break case 118:R="衛星":break case 119:R="競星":break case 120:R="宙域":break case 121:R="こちら":break case 122:R="されました":break case 123:R="きます":break case 124:R="ボンサイ":break case 125:R="盆栽":break case 126:R="宇宙港":break case 127:R="ユニット":break case 128:R="ボイド・ブイ":break case 129:R="ブイ":break case 130:R="装置":break case 131:R="回路":break case 132:R="操作":break case 133:R="岩塊":break case 134:R="A級":break case 135:R="彗星":break case 136:R="不時着":break case 137:R="ばくち":break case 138:R="バリアー・コイル":break case 139:R="ワープ":break case 140:R="メダル":break case 141:R="ビーム・ナイフ":break case 142:R="クーラー":break case 143:R="ワンコイン・ジャンプボード":break case 144:R="機雷":break case 145:R="斥力":break case 146:R="高性能":break case 147:R="探知":break case 148:R="発信":break case 149:R="エミサイス":break case 150:R="バケオック":break case 151:R="予備":break case 152:R="受信":break case 153:R="信号":break case 154:R="帰艦":break case 155:R="から":break case 156:R="こっち":break case 157:R="あっち":break case 158:R="相当":break case 159:R="大変":break case 160:R="回復":break case 161:R="出力":break case 162:R="速度":break case 163:R="できました":break case 164:R="行ってきます":break case 165:R="てごわい":break case 166:R="なにをやっている":break case 167:R="なにやってんだ":break case 168:R="やりますか":break case 169:R="戦闘体制":break case 170:R="驚いた":break case 171:R="驚きました":break case 172:R="たまげた":break case 173:R="仰天だ":break case 174:R="すれすれだ":break case 175:R="完了":break case 176:R="やりました":break case 177:R="やった":break case 178:R="降伏":break case 179:R="ただ今":break case 180:R="現在":break case 181:R="もうすぐ":break case 182:R="誰か修理作業へまわしてください":break case 183:R="危険な状態です":break case 184:R="いいですね":break case 185:R="かっこいい":break case 186:R="いいね":break case 187:R="やるじゃないか":break case 188:R="どうですか":break case 189:R="完成しました":break case 190:R="中です":break case 191:R="":break case 192:R="":break case 193:R="":break case 194:R="":break case 195:R="":break case 196:R="":break case 197:R="":break case 198:R="":break case 199:R="":break case 200:R="":break case 201:R="":break case 202:R="":break case 203:R="":break case 204:R="ROCTOPAS":break endswitch return(R) endfunc func firstsetting() h(0)="サンポイザー" :hg( 0)=4 :hs( 0)=20:hs2( 0)=60:ad( 0)=3 h(1)="ヤングノイマン" :hg( 1)=11:hs( 1)=14:hs2( 1)=40:ad( 1)=3 h(2)="シャミセンカスタネト" :hg( 2)=18:hs( 2)=22:hs2( 2)=70:ad( 2)=2 h(3)="サルスター" :hg( 3)=7 :hs( 3)=34:hs2( 3)=35:ad( 3)=2 h(4)="パクパクォーター" :hg( 4)=18:hs( 4)=24:hs2( 4)=60:ad( 4)=3 h(5)="ホネキチストライク" :hg( 5)=10:hs( 5)=37:hs2( 5)=30:ad( 5)=1 h(6)="サマソ" :hg( 6)=3 :hs( 6)=20:hs2( 6)=40:ad( 6)=3 h(7)="バックダッシュ・レア" :hg( 7)=2 :hs( 7)=11:hs2( 7)=50:ad( 7)=4 h(8)="カニアース" :hg( 8)=9 :hs( 8)=20:hs2( 8)=40:ad( 8)=3 h(9)="サメパチドギューンオウ" :hg( 9)=2 :hs( 9)=21:hs2( 9)=50:ad( 9)=3 h(10)="アタッキーフランソワ" :hg(10)=14:hs(10)=26:hs2(10)=70:ad(10)=2 h(11)="ワリカーン" :hg(11)=9 :hs(11)=18:hs2(11)=55:ad(11)=3 h(12)="タベレマシェン" :hg(12)=18:hs(12)=39:hs2(12)=45:ad(12)=1 h(13)="カロリーオファァー" :hg(13)=0 :hs(13)=35:hs2(13)=32:ad(13)=2 h(14)="マムシオン" :hg(14)=1 :hs(14)=20:hs2(14)=35:ad(14)=3 h(15)="ナイシャリン" :hg(15)=13:hs(15)=17:hs2(15)=65:ad(15)=3 h(16)="ドンクサクマエニナラエ":hg(16)=7 :hs(16)=22:hs2(16)=40:ad(16)=3 h(17)="ナスダトラック" :hg(17)=13:hs(17)=24:hs2(17)=75:ad(17)=2 h(18)="フルーツインセロリ" :hg(18)=14:hs(18)=23:hs2(18)=35:ad(18)=3 h(19)="スカジタリウス" :hg(19)=5 :hs(19)=22:hs2(19)=25:ad(19)=3 h(20)="スモウレンダラー" :hg(20)=1 :hs(20)=14:hs2(20)=30:ad(20)=3 h(21)="ハマムラキュン" :hg(21)=0 :hs(21)=40:hs2(21)=50:ad(21)=1 h(22)="ビワズニューヨーカー" :hg(22)=14:hs(22)=27:hs2(22)=40:ad(22)=2 h(23)="ステミノモグリ" :hg(23)=17:hs(23)=31:hs2(23)=30:ad(23)=2 h(24)="ミライクン" :hg(24)=5 :hs(24)=25:hs2(24)=30:ad(24)=3 h(25)="ピザヤタイムアウト" :hg(25)=4 :hs(25)=24:hs2(25)=20:ad(25)=2 h(26)="カウンターモノリス" :hg(26)=0 :hs(26)=15:hs2(26)=80:ad(26)=3 h(27)="マイティーモール" :hg(27)=17:hs(27)=27:hs2(27)=40:ad(27)=2 h(28)="サンダーシェイプ" :hg(28)=15:hs(28)=23:hs2(28)=30:ad(28)=3 h(29)="ヒノナノカクワン" :hg(29)=0 :hs(29)=22:hs2(29)=50:ad(29)=3 h(30)="カナリトロイカー" :hg(30)=13:hs(30)=14:hs2(30)=55:ad(30)=3 h(31)="アンタガサイキョジャク":hg(31)=0 :hs(31)=22:hs2(31)=40:ad(31)=3 h(32)="サクサクホリン" :hg(32)=17:hs(32)=19:hs2(32)=50:ad(32)=3 h(33)="フナヨイワカイシュウ" :hg(33)=1 :hs(33)=32:hs2(33)=70:ad(33)=2 h(34)="タイムポンカン" :hg(34)=11:hs(34)=28:hs2(34)=30:ad(34)=2 h(35)="サマシテクウシーフ" :hg(35)=11:hs(35)=24:hs2(35)=50:ad(35)=3 h(36)="ハマヤラワンワン" :hg(36)=12:hs(36)=26:hs2(36)=15:ad(36)=3 h(37)="ヒヤシテクウテイオー" :hg(37)=5 :hs(37)=20:hs2(37)=45:ad(37)=3 h(38)="オニタイジカー" :hg(38)=13:hs(38)=18:hs2(38)=65:ad(38)=3 h(39)="クリアザオールビット" :hg(39)=2 :hs(39)=30:hs2(39)=30:ad(39)=2 h(40)="サイレンカーニヴァル" :hg(40)=10:hs(40)=31:hs2(40)=40:ad(40)=2 h(41)="クワックフライ" :hg(41)=15:hs(41)=24:hs2(41)=45:ad(41)=2 h(42)="エルドラドガショー" :hg(42)=16:hs(42)=22:hs2(42)=50:ad(42)=3 h(43)="サンタパスター" :hg(43)=5 :hs(43)=20:hs2(43)=64:ad(43)=3 h(44)="フユウアンコウ" :hg(44)=14:hs(44)=21:hs2(44)=50:ad(44)=3 h(45)="ヤイテクウサモナー" :hg(45)=6 :hs(45)=28:hs2(45)=65:ad(45)=2 h(46)="ジャイアントワンワン" :hg(46)=12:hs(46)=29:hs2(46)=20:ad(46)=2 h(47)="ジャックポットミニ" :hg(47)=8 :hs(47)= 5:hs2(47)=60:ad(47)=4 h(48)="ワシャワシャホイホイ" :hg(48)=9 :hs(48)=14:hs2(48)=50:ad(48)=3 h(49)="アトカラモーチャージ" :hg(49)=18:hs(49)=10:hs2(49)=70:ad(49)=4 h(50)="ミノーチャレンジャー" :hg(50)=19:hs(50)=19:hs2(50)=35:ad(50)=3 h(51)="ネリケシフレーバ" :hg(51)=6 :hs(51)=16:hs2(51)=40:ad(51)=3 h(52)="ネゾウワルシャミン" :hg(52)=7 :hs(52)=25:hs2(52)=50:ad(52)=2 h(53)="サイハテミスプリント" :hg(53)=16:hs(53)=41:hs2(53)=40:ad(53)=1 h(54)="クイニゲサーチライト" :hg(54)=4 :hs(54)=24:hs2(54)=25:ad(54)=2 h(55)="ナルトギャラクシア" :hg(55)=14:hs(55)=30:hs2(55)=40:ad(55)=2 h(56)="ジョウントマスター" :hg(56)=16:hs(56)=18:hs2(56)=50:ad(56)=3 h(57)="オテモトボッシュウ" :hg(57)=15:hs(57)=22:hs2(57)=30:ad(57)=3 h(58)="コガシテクウサムライ" :hg(58)=4 :hs(58)=21:hs2(58)=60:ad(58)=3 h(59)="キタカゼスライダー" :hg(59)=3 :hs(59)=28:hs2(59)=50:ad(59)=2 h(60)="オセイボカラヤン" :hg(60)=3 :hs(60)=14:hs2(60)=50:ad(60)=3 h(61)="ナンキョクワンワン" :hg(61)=12:hs(61)=38:hs2(61)=55:ad(61)=1 h(62)="ネスゴシサイダイジ" :hg(62)=3 :hs(62)=25:hs2(62)=50:ad(62)=2 /* 寝すごし西大寺 h(63)="ハイワットタマ" :hg(63)=11:hs(63)=20:hs2(63)=20:ad(63)=3 h(64)="トウキョーポチットナ" :hg(64)=4 :hs(64)=26:hs2(64)=50:ad(64)=2 h(65)="ナイモンハナイ" :hg(65)=7 :hs(65)=21:hs2(65)=50:ad(65)=3 endfunc /* /* 二者択一宇宙探索system /* /* 選択肢分類 /* ・操縦プロセス /* ・アクション・イベント /* /* シナリオ /* ・コンテナ奪回! /* ・ポーストン邸強襲 /* ・武器商人とのにらみ合い /* ・海賊船レッド・ゾーン /* ・あっちが悪い /* ・ /* /* 星図の裏、確率の外 /* /* 立 隣 影 酸 光 餅 電 眠 禅 /* L R A S K H D M Z /* /* /* 吊した布 /* カラノソリス /* /* /* /* /* /* func corg(n,t) /* crue face graphic get (number,type[0:front/1:rear]) if t=0 then get(n*82,512,n*82+81,601,gm) else get(n*82,602,n*82+81,691,gm) endfunc func corp(n) /* graphic put (n;position code) switch n case 0:/* for (tokbox+)face put(590,397,671,486,gm):break case 1:/* for title put(490,401,571,490,gm):break /* pending case 2:/* for picnic text-window put(6,414,87,503,gm):break endswitch endfunc func corp_c(n) switch n case 0:fill(590,397,671,486,0):break case 1:fill(490,401,571,490,0):break case 2:fill(6,414,87,503,0):break endswitch endfunc func crue(n,t) int ci switch t case 0:get(n*82,512,n*82+81,601,gm):break case 1:get(n*82,602,n*82+81,691,gm):break case 2:get(820,512,901,601,gm):break endswitch switch n case 2:put(660,271,741,360,gm):break case 8:put(570,271,651,360,gm):break case 0:put(50,241,131,330,gm):break case 6:put(135,241,216,330,gm):break case 3:put(420,308,501,396,gm) line(470,395,473,373,14):line(471,395,474,373,14) line(474,373,509,373,14):box(505,373,506,395,14) line(509,373,510,395,14):line(510,373,511,396,14) box(476,376,499,392,2):break case 4:put(220,308,301,396,gm):break endswitch endfunc func picnic() /* ROCTOPUS:MAIN BRIDGE cls cambox(0) vpage(0) contrast(4) fill(659,367,740,426,0) fill(400,445,765,485,0) circle(383,200,100,2) circle(383,200,130,5,345,195,256) line(223,235,273,235,14) line(493,235,543,235,14) line(223,235,218,300,14):line(273,235,278,300,14) line(224,235,219,300,14):line(274,235,279,300,14) line(493,235,488,300,14):line(543,235,548,300,14) line(492,235,487,300,14):line(542,235,547,300,14) line(544,250,555,250,14) line(545,257,555,257,14) fill(555,250,556,257,14) fill(550,253,551,254,14) fill(550,249,551,232,14) circle(550,220,11,7)/*:circle(551,220,11,7) line(279,300,488,300,14) box(48,37,228,47,2) box(538,37,718,47,2) fill(223,30,274,40,14):fill(264,31,272,39,0):fill(225,31,233,39,0):fill(236,30,261,40,0) fill(492,30,543,40,14):fill(494,31,502,39,0):fill(533,31,541,39,0):fill(505,30,530,40,0) line(276,35,490,35,7) line(268,29,268,25,14):line(498,29,498,25,14) line(267,29,267,25,14):line(499,29,499,25,14) line(268,25,498,25,14) line(229,29,227,0,14):line(537,29,539,0,14) fill(333,282,433,307,14) fill(345,284,421,305,0):fill(346,285,420,304,5) fill(340,285,341,304,0) box(3,412,483,505,15):box(4,412,482,505,12) /* (text area) x:1-59, y:26-30 line(18,240,45,300,14):line(19,240,46,300,14) line(45,300,0,311,14) line(0,236,18,240,14) line(45,0,18,60,14):line(46,0,19,60,14) line(18,60,0,64,14) line(722,0,749,60,14):line(721,0,748,60,14) line(749,60,767,64,14) line(0,332,214,332,14):line(214,332,214,397,14):line(215,332,215,397,14) box(700,220,768,240,14):line(701,220,701,240,14) box(698,242,740,270,2) circle(720,230,7,2):circle(740,230,7,2) box(753,237,768,240,14) fill(743,243,744,244,15):fill(743,249,744,250,2) crue(2,1) crue(8,1) crue(0,0) crue(6,1) crue(3,1) crue(4,1) /* box(575,321,649,361,14):box(576,321,648,361,14) line(560,361,767,361,14) line(760,295,767,295,14):line(760,295,742,361,14):line(761,295,743,361,14) line(354,397,356,370,14):line(355,397,357,370,14) line(357,370,413,370,14):line(215,397,355,397,14) line(413,370,415,397,14):line(414,370,416,397,14) line(416,397,590,397,14) line(590,397,593,411,14):line(591,397,594,411,14) line(560,361,553,397,14):line(561,361,554,397,14) contrast(15) vpage(1) endfunc func airb(C) /* 表示画面をキャラ(表裏交互)で埋める デモ用(?) int LS,LM,LF vpage(0) for LS=0 to 4 for LM=0 to 8 if LF=0 then LF=1 else LF=0 corg(C,LF) put(85*LM,100*LS+10,85*LM+81,100*LS+99,gm) next next vpage(1) endfunc func texpin_sc() /* TEXT-PINBALL BASIC SCREEN FORM /* ball --- phase --- impact box(250,20,380,110,15) line(250,110,200,310,15) line(380,110,430,310,15) box(200,310,430,370,15) endfunc func sleep(CC;int) /* グラフィック部暗転/CC...処理をキャンセルする色番号(1~15,通常は0) int L,LB for L=1 to 31 R2=0:B2=0:G2=0 for LB=0 to 13 if LB+1=CC then continue R2=crgb(LB*3)-L:if R2<0 then R2=0 G2=crgb(LB*3+1)-L:if G2<0 then G2=0 B2=crgb(LB*3+2)-L:if B2<0 then B2=0 palet(LB+1,rgb(R2,G2,B2)) next if CC<>15 then palet(15,rgb(31-L,31-L,31-L)) wait(1) next endfunc func awake(CC;int) /* パレット復帰/CC...処理をキャンセルする色番号(1~15,通常は0) int L,LB for L=1 to 31 R2=0:B2=0:G2=0 for LB=0 to 13 if LB+1=CC then continue R2=L:if crgb(LB*3)<L then R2=crgb(LB*3) G2=L:if crgb(LB*3+1)<L then G2=crgb(LB*3+1) B2=L:if crgb(LB*3+2)<L then B2=crgb(LB*3+2) palet(LB+1,rgb(R2,G2,B2)) next if CC<>15 then palet(15,rgb(L,L,L)) wait(1) next endfunc func graphpac() /* 開発用/グラフィック・セーバ int L,LL,P,N N=fopen("HP_GRA.DAT","c") for LL=0 to 2 for L=0 to 9 get(L*82,LL*90+512,L*82+81,LL*90+601,gm) P=fwrite(gm,3690,N) next next P=fclose(N) endfunc func graphicLoad() /* 未使用 int N,LL,L,P N=fopen("HP_GRA.DAT","r") for LL=0 to 2 for L=0 to 9 P=fread(gm,3690,N) put(L*82,LL*90+512,L*82+81,LL*90+601,gm) next next P=fclose(N) endfunc func test1() int L,P,D,A,B,T str S,TW D=255 TW=right$(time$,1) while 1 if right$(time$,1)<>TW then break endwhile T=0 /* counter TW=right$(time$,1) while 1 if right$(time$,1)<>TW then break P=D A=P/16 B=P mod 16 T=T+1 endwhile color 7:pen(0,0,"(/),(mod):"+str$(T)+"times") TW=right$(time$,1) while 1 if right$(time$,1)<>TW then break endwhile T=0 /* counter TW=right$(time$,1) while 1 if right$(time$,1)<>TW then break P=D A=P/16 B=P-A*16 T=T+1 endwhile color 7:pen(0,1,"(/),(*):"+str$(T)+"times") hitany() endfunc func test2() int L,P,D,A,B,T str S,TW S="1011011001" D=255 TW=right$(time$,1) while 1 if right$(time$,1)<>TW then break endwhile T=0 /* counter TW=right$(time$,1) while 1 if right$(time$,1)<>TW then break for L=1 to 10 if mid$(S,L,1)="1" then pset(L,30,15) next T=T+1 endwhile color 7:pen(0,0,"(if):"+str$(T)+"times") TW=right$(time$,1) while 1 if right$(time$,1)<>TW then break endwhile T=0 /* counter TW=right$(time$,1) while 1 if right$(time$,1)<>TW then break for L=1 to 10 pset(L,30,atoi(mid$(S,L,1))*15) next T=T+1 endwhile color 7:pen(0,1,"(all):"+str$(T)+"times") hitany() endfunc func faces() int L,X,C,P box(48,48,71,141,15) color 7 while 1 pen(0,0,space$(8)) pen(0,0,str$(C*82+X)+"["+str$(X)+"]") get(C*82+X,512,C*82+X+19,601,gm) put(50,50,69,139,gm) hitany() if as="4" then if X>0 then X=X-1 if as="6" then if X+19<81 then X=X+1 if as="8" then if C<9 then C=C+1 if as="2" then if C>0 then C=C-1 endwhile endfunc /* Sen 1:バケモンモード /* 2: /* 9:ルーレット・メモリ (航行先の決定時に参考として使用) /* 10:惑星オトトギー /* 11: 衛星モリス /* 12: 衛星チタンスシヤ /* 13:惑星レガンタ /* 14: 衛星リンリン /* 15: 衛星ズオビシ /* 16:惑星ヘタライズ /* 17:惑星パリヤン /* 18:惑星ノットロット /* 19: 衛星タコイズ /* 20:惑星リンカリピカ /* 21: 衛星ティム /* 22: 衛星ダムト /* 23:惑星フリッツァ /* 24:惑星エンジエイラ 0)未踏査 1)完全制覇 2)クリア 3~)未クリア[探索回数+2] /* 34:flet/1 [37] 1:STG 2:SLG 3:RPG 4:ACT 5:ADV /* 35:flet/2 [37] /* 36:flet/3 [37] /* 37:ヘビのダーシイ、開発状況 0,1(ジャンル),2(タイプ),3(シーン),4(カンセイ!) /* 38:化学室の亡霊 0:ASLEEP 1:AWAKE 2:WALKING 3:DESTROY-RUNNING /* 39:船底フラスコの蓄積量(あくまで目安、許容量は11) /* 40:お食事権 (8以上有効、食事毎にクリア) /* 47:受賞回数 /* 48:ワープ回数 /* 49:交戦回数 /* 50:離陸回数